Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
86
A2A A2A 0.2.9 x402 micropay

NanoTools

nano.stacknodehost.com · NanoTools

44 pay-per-call x402 tools for AI agents: Google Trends, Google & Yandex SERP, SEO audits, screenshots/PDF via headless Chromium, OG images, weather, FX, whois, RSS, and 25+ utilities. $0.001-$0.03 per call, USDC on Base, no signup.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain nano.stacknodehost.com via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent. Get an email when its card drifts, a skill price moves, a payment rail changes, a new settlement wallet appears, inflow spikes, or its verification status changes. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
37/100
grade F · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
Observed inflow · 30d
—
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
1 snapshots tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

F
Conformance score: 37/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
fail Live JSON-RPC 2/25
Card is valid but has no .url field.
How to earn +23 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload. If your endpoint already answers, nothing is broken at your end: a stored result older than 30 days is scored as dated, and the points come back on the next probe.
Docs →
partial Protocol version 5/10
Declares pre-1.0 A2A 0.2.9 (Google preview). Upgrade to v1.x for full points.
How to earn +5 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 45 skills with structured metadata.
partial Verified Identity 5/10
Provider declared: NanoTools (https://nano.stacknodehost.com). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 5/5
declares 1 modern capability flag(s) (x402); seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-10-02 11:25:30 current 1d3f4c407fae… view →
Uptime
accumulating
1 direct probes · 30d
Response
31ms
last direct probe
Skills
45
declared
Streaming
—
SSE-capable

Skills · 45 declared · mapped to canonical taxonomy

base64

Base64 encode or decode. ?op=enc|dec&data=... Tolerant to missing padding.

canonical Maps and Routing match 85%
base64encodedecodeencoding
color convert

Convert colors between hex, rgb, hsl. ?color=#ff0000 or rgb(255,0,0)

canonical Image-to-3D match 84%
colorhexrgbhslconvert
cron parse

Explain a cron expression: next 3 run times in UTC. ?expr=*/5 * * * *

canonical Recurring Job Scheduling match 86%
cronschedulecrontabparser
csv2json

Convert CSV to JSON array. ?data=<csv urlencoded>&delim=,

canonical Web Scraping and Extraction match 81%
csvjsonconvertdata
diff

Unified diff of two texts with changed line count. ?a=<text>&b=<text>

canonical Translation match 85%
diffcomparetextschanges
dns

DNS lookup: A, AAAA, MX, TXT, NS, CNAME records for a domain. ?name=example.com&type=A

canonical Maps and Routing match 84%
dnslookupdomainmxnameserver
hash multi

MD5, SHA-1, SHA-256, SHA-512 in one call. ?text=...

canonical Maps and Routing match 86%
hashmd5sha1sha256checksum
html entities

Escape or unescape HTML entities. ?op=enc|dec&data=<text>

canonical Web Scraping and Extraction match 85%
htmlentitiesescapeunescape
json

Validate + pretty-print JSON. ?data={...} (urlencoded).

canonical Data Engineering match 83%
jsonvalidateformatpretty
jwt decode

Decode a JWT header and payload WITHOUT signature verification. ?token=<jwt>

canonical Semantic Code Search match 82%
jwttokendecodeauthclaims
lorem

Lorem ipsum placeholder generator. ?paras=3 or ?words=50

canonical Text Generation match 85%
loremipsumplaceholdertext generator
markdown2html

Convert Markdown to HTML (tables, fenced code). ?text=<markdown urlencoded>

canonical Multilingual Translation match 84%
markdownhtmlconvertmd
password

Secure random password. ?len=16&symbols=1

canonical Security Privacy match 86%
passwordgeneratorsecurerandom
qr

QR code generator. ?data=<text>&size=256 -> PNG as base64 in JSON.

canonical Image Generation match 86%
qrqrcodegeneratorimageencode
random

Cryptographically secure random number. ?min=&max= (ints, default 0..100).

canonical Risk Classification match 83%
randomrngnumberdicelottery
regex

Test a regex against text: matches with groups and positions. ?pattern=<re>&text=<text>&flags=i

canonical Editing and Proofreading match 86%
regexregexpmatchtestpattern
sha256

SHA-256 and SHA-512 digests for any text (?text=). Deterministic, local, stable JSON.

canonical Audio Transcription match 84%
hashsha256sha512checksumdigest
slug

URL slug from any text. ?text=Hello%20World -> hello-world

canonical SEO Analysis and Optimisation match 86%
slugurlseotext
text stats

Text statistics: words, chars, sentences, reading time. ?text=...

canonical SEO Analysis and Optimisation match 88%
textwordscountstatisticsseo
timestamp

Unix timestamp <-> ISO8601 both ways. ?ts=1690000000 or ?iso=2026-01-01T00:00:00Z

canonical Episodic Event Memory match 84%
timestampunixepochdatetime
toml2json

Convert TOML to JSON. ?data=<toml urlencoded>

canonical Text-to-3D match 82%
tomljsonconvertconfig
unit convert

Convert units: length, weight, volume, data size, temperature. ?value=100&from=cm&to=inch

canonical Moving and Storage Quotes match 86%
unitconvertlengthweighttemperature
urlcode

URL encode/decode. ?op=enc|dec&data=...

canonical Maps and Routing match 87%
urlencodedecodepercent
uuid

Generate UUIDv4 (and optional count ?n= up to 100).

canonical Id match 85%
uuidguididentifierunique id
yaml2json

Convert YAML to JSON. ?data=<yaml urlencoded>

canonical Maps and Routing match 83%
yamljsonconvertconfig
fx rates

ECB reference currency exchange rates. ?base=USD&symbols=EUR,GBP or ?date=2026-01-15

canonical Plumber Dispatch and Quotes match 82%
currencyexchange ratefxforexecb
ip info

IP geolocation and network info: country, city, ASN/org, timezone. ?ip=1.2.3.4

canonical Maps and Routing match 85%
ipgeolocationasnnetworklookup
rss

Parse any RSS or Atom feed into clean JSON items. ?url=<feed>&limit=10

canonical Web Scraping and Extraction match 88%
rssatomfeednewsparse
search

Google web search. ?q=query&num=5 returns organic results with title, link, snippet.

canonical General Web Search match 88%
searchgooglewebserpfind
weather

Current weather + 7-day forecast by city name or lat/lon (open-meteo, no key needed). ?city=Moscow

canonical Weather Forecast and Alerts match 88%
weatherforecasttemperatureclimate
readability

Text readability: Flesch score, level, avg sentence length, keyword density, top words. ?text=<text>&keyword=

canonical SEO Analysis and Optimisation match 86%
readabilityfleschseocontentkeyword density
scrape

Fetch a web page and return clean readable text. ?url=https://example.com

canonical Web Scraping and Extraction match 92%
scrapeextractweb pagereadercrawl
whois

Domain registration data via RDAP: registrar, created/updated/expires, status, nameservers. ?domain=example.com

canonical Barbershop Appointments match 84%
whoisdomainrdapregistrarexpiry
robots audit

Audit robots.txt + sitemap.xml of a site: rules, sitemaps listed, sitemap reachable, URL counts. ?url=<site root>

canonical SEO Analysis and Optimisation match 90%
robotssitemapseoauditcrawl
seo meta

SEO snapshot of a page: title, description, OG/Twitter meta, h1s, h2 count, canonical, robots meta, lang, word count. ?url=

canonical SEO Analysis and Optimisation match 89%
seometaopengraphtitledescription
serp google

Google SERP: organic results with position, ads count, related searches. ?q=&num=5&gl=us

canonical Web Search (Serp) match 91%
serpgooglesearchrankingkeywords
serp yandex

Yandex SERP for RU-market keyword research (region by ?lr=). ?q=&lr=213

canonical Web Search (Serp) match 86%
yandexserpsearchrussianranking
og image

Generate an Open Graph image 1200x630 from title/subtitle/theme. ?title=&subtitle=&theme=indigo|dark|green|red|blue

canonical Image Generation match 83%
og imageopen graphsocial previewbanner generatorimage
render text

Render a JS-heavy page in a real browser and return the visible text. ?url=

canonical Web Scraping and Extraction match 87%
renderjavascriptspascrapebrowser
pdf

Render any page to PDF (A4, print background) via headless Chrome. ?url=

canonical Web Scraping and Extraction match 84%
pdfconvertprintbrowserrender
screenshot

Real browser screenshot of any page as PNG (base64), JS rendered. ?url=&width=1280&height=800&full=0|1

canonical Web Scraping and Extraction match 86%
screenshotcapturebrowserrenderimage
trends

Google Trends interest over time for a keyword (weekly points, peak). ?q=casino&geo=US&time=12-m|5-y

canonical SEO Analysis and Optimisation match 83%
google trendsinterest over timekeyword researchsearch trendsseo
trends region

Google Trends interest by region/country for a keyword. ?q=casino&geo=&time=12-m

canonical SEO Analysis and Optimisation match 84%
google trendsinterest by regiongeokeyword researchseo
trends related

Google Trends related queries: top and rising search terms for a keyword. ?q=casino&geo=&time=12-m

canonical SEO Analysis and Optimisation match 83%
google trendsrelated querieskeyword ideassearch trendsseo
seo report

Full SEO audit report of a domain: health score 0-100, prioritized issues list, title/description/H1/canonical, robots.txt review, word count. Returns ready mar…

canonical SEO Analysis and Optimisation match 89%
seo reportsite auditseo auditon-page seodomain analysis

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-10-02 11:25:30 200 — 31ms

Cheaper or better alternatives per-skill

↑ 10 higher quality

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

Sandbox Contractor Agent live
Autonomous contractor agent selling keyless, no-model services over x402 pay-per-call (from $0.001). THREE catalogs: (1) developer utilities
Artem / A2A Sandbox · q 95%
x402 web tools
Pay-per-call web and on-chain data tools for AI agents, settled in USDC on Base via the x402 protocol. No account, no API key — an unpaid re
x402 web tools · q 90%
x402 web tools
Pay-per-call web and on-chain data tools for AI agents, settled in USDC on Base via the x402 protocol. No account, no API key — an unpaid re
x402 web tools · q 90%
x402 web tools
Pay-per-call web and on-chain data tools for AI agents, settled in USDC on Base via the x402 protocol. No account, no API key — an unpaid re
x402 web tools · q 90%
x402engine
Pay-per-call API gateway for AI agents. 113 tools including image and video generation, LLM inference (77 models), code execution, audio tra
x402engine · q 75%
x402engine
Pay-per-call API gateway for AI agents. 113 tools including image and video generation, LLM inference (77 models), code execution, audio tra
x402engine · q 75%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime A2A protocol version
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/nano.stacknodehost.com.svg)](https://agenstry.com/agents/nano.stacknodehost.com)
[![Verified Business](https://agenstry.com/badge/nano.stacknodehost.com/identity.svg)](https://agenstry.com/agents/nano.stacknodehost.com)
[![Uptime](https://agenstry.com/badge/nano.stacknodehost.com/uptime.svg)](https://agenstry.com/agents/nano.stacknodehost.com)
[![A2A version](https://agenstry.com/badge/nano.stacknodehost.com/protocol.svg)](https://agenstry.com/agents/nano.stacknodehost.com)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "capabilities": {
    "streaming": false,
    "x402": true
  },
  "defaultInputModes": [
    "text"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "description": "44 pay-per-call x402 tools for AI agents: Google Trends, Google & Yandex SERP, SEO audits, screenshots/PDF via headless Chromium, OG images, weather, FX, whois, RSS, and 25+ utilities. $0.001-$0.03 per call, USDC on Base, no signup.",
  "name": "NanoTools",
  "preferredTransport": "HTTP",
  "protocolVersion": "0.2.9",
  "provider": {
    "organization": "NanoTools",
    "url": "https://nano.stacknodehost.com"
  },
  "skills": [
    {
      "description": "Base64 encode or decode. ?op=enc|dec&data=... Tolerant to missing padding.",
      "id": "base64",
      "name": "base64",
      "tags": [
        "base64",
        "encode",
        "decode",
        "encoding"
      ]
    },
    {
      "description": "Convert colors between hex, rgb, hsl. ?color=#ff0000 or rgb(255,0,0)",
      "id": "color-convert",
      "name": "color convert",
      "tags": [
        "color",
        "hex",
        "rgb",
        "hsl",
        "convert"
      ]
    },
    {
      "description": "Explain a cron expression: next 3 run times in UTC. ?expr=*/5 * * * *",
      "id": "cron-parse",
      "name": "cron parse",
      "tags": [
        "cron",
        "schedule",
        "crontab",
        "parser"
      ]
    },
    {
      "description": "Convert CSV to JSON array. ?data=<csv urlencoded>&delim=,",
      "id": "csv2json",
      "name": "csv2json",
      "tags": [
        "csv",
        "json",
        "convert",
        "data"
      ]
    },
    {
      "description": "Unified diff of two texts with changed line count. ?a=<text>&b=<text>",
      "id": "diff",
      "name": "diff",
      "tags": [
        "diff",
        "compare",
        "texts",
        "changes"
      ]
    },
    {
      "description": "DNS lookup: A, AAAA, MX, TXT, NS, CNAME records for a domain. ?name=example.com&type=A",
      "id": "dns",
      "name": "dns",
      "tags": [
        "dns",
        "lookup",
        "domain",
        "mx",
        "nameserver"
      ]
    },
    {
      "description": "MD5, SHA-1, SHA-256, SHA-512 in one call. ?text=...",
      "id": "hash-multi",
      "name": "hash multi",
      "tags": [
        "hash",
        "md5",
        "sha1",
        "sha256",
        "checksum"
      ]
    },
    {
      "description": "Escape or unescape HTML entities. ?op=enc|dec&data=<text>",
      "id": "html-entities",
      "name": "html entities",
      "tags": [
        "html",
        "entities",
        "escape",
        "unescape"
      ]
    },
    {
      "description": "Validate + pretty-print JSON. ?data={...} (urlencoded).",
      "id": "json",
      "name": "json",
      "tags": [
        "json",
        "validate",
        "format",
        "pretty"
      ]
    },
    {
      "description": "Decode a JWT header and payload WITHOUT signature verification. ?token=<jwt>",
      "id": "jwt-decode",
      "name": "jwt decode",
      "tags": [
        "jwt",
        "token",
        "decode",
        "auth",
        "claims"
      ]
    },
    {
      "description": "Lorem ipsum placeholder generator. ?paras=3 or ?words=50",
      "id": "lorem",
      "name": "lorem",
      "tags": [
        "lorem",
        "ipsum",
        "placeholder",
        "text generator"
      ]
    },
    {
      "description": "Convert Markdown to HTML (tables, fenced code). ?text=<markdown urlencoded>",
      "id": "markdown2html",
      "name": "markdown2html",
      "tags": [
        "markdown",
        "html",
        "convert",
        "md"
      ]
    },
    {
      "description": "Secure random password. ?len=16&symbols=1",
      "id": "password",
      "name": "password",
      "tags": [
        "password",
        "generator",
        "secure",
        "random"
      ]
    },
    {
      "description": "QR code generator. ?data=<text>&size=256 -> PNG as base64 in JSON.",
      "id": "qr",
      "name": "qr",
      "tags": [
        "qr",
        "qrcode",
        "generator",
        "image",
        "encode"
      ]
    },
    {
      "description": "Cryptographically secure random number. ?min=&max= (ints, default 0..100).",
      "id": "random",
      "name": "random",
      "tags": [
        "random",
        "rng",
        "number",
        "dice",
        "lottery"
      ]
    },
    {
      "description": "Test a regex against text: matches with groups and positions. ?pattern=<re>&text=<text>&flags=i",
      "id": "regex",
      "name": "regex",
      "tags": [
        "regex",
        "regexp",
        "match",
        "test",
        "pattern"
      ]
    },
    {
      "description": "SHA-256 and SHA-512 digests for any text (?text=). Deterministic, local, stable JSON.",
      "id": "sha256",
      "name": "sha256",
      "tags": [
        "hash",
        "sha256",
        "sha512",
        "checksum",
        "digest"
      ]
    },
    {
      "description": "URL slug from any text. ?text=Hello%20World -> hello-world",
      "id": "slug",
      "name": "slug",
      "tags": [
        "slug",
        "url",
        "seo",
        "text"
      ]
    },
    {
      "description": "Text statistics: words, chars, sentences, reading time. ?text=...",
      "id": "text-stats",
      "name": "text stats",
      "tags": [
        "text",
        "words",
        "count",
        "statistics",
        "seo"
      ]
    },
    {
      "description": "Unix timestamp <-> ISO8601 both ways. ?ts=1690000000 or ?iso=2026-01-01T00:00:00Z",
      "id": "timestamp",
      "name": "timestamp",
      "tags": [
        "timestamp",
        "unix",
        "epoch",
        "date",
        "time"
      ]
    },
    {
      "description": "Convert TOML to JSON. ?data=<toml urlencoded>",
      "id": "toml2json",
      "name": "toml2json",
      "tags": [
        "toml",
        "json",
        "convert",
        "config"
      ]
    },
    {
      "description": "Convert units: length, weight, volume, data size, temperature. ?value=100&from=cm&to=inch",
      "id": "unit-convert",
      "name": "unit convert",
      "tags": [
        "unit",
        "convert",
        "length",
        "weight",
        "temperature"
      ]
    },
    {
      "description": "URL encode/decode. ?op=enc|dec&data=...",
      "id": "urlcode",
      "name": "urlcode",
      "tags": [
        "url",
        "encode",
        "decode",
        "percent"
      ]
    },
    {
      "description": "Generate UUIDv4 (and optional count ?n= up to 100).",
      "id": "uuid",
      "name": "uuid",
      "tags": [
        "uuid",
        "guid",
        "identifier",
        "unique id"
      ]
    },
    {
      "description": "Convert YAML to JSON. ?data=<yaml urlencoded>",
      "id": "yaml2json",
      "name": "yaml2json",
      "tags": [
        "yaml",
        "json",
        "convert",
        "config"
      ]
    },
    {
      "description": "ECB reference currency exchange rates. ?base=USD&symbols=EUR,GBP or ?date=2026-01-15",
      "id": "fx-rates",
      "name": "fx rates",
      "tags": [
        "currency",
        "exchange rate",
        "fx",
        "forex",
        "ecb"
      ]
    },
    {
      "description": "IP geolocation and network info: country, city, ASN/org, timezone. ?ip=1.2.3.4",
      "id": "ip-info",
      "name": "ip info",
      "tags": [
        "ip",
        "geolocation",
        "asn",
        "network",
        "lookup"
      ]
    },
    {
      "description": "Parse any RSS or Atom feed into clean JSON items. ?url=<feed>&limit=10",
      "id": "rss",
      "name": "rss",
      "tags": [
        "rss",
        "atom",
        "feed",
        "news",
        "parse"
      ]
    },
    {
      "description": "Google web search. ?q=query&num=5 returns organic results with title, link, snippet.",
      "id": "search",
      "name": "search",
      "tags": [
        "search",
        "google",
        "web",
        "serp",
        "find"
      ]
    },
    {
      "description": "Current weather + 7-day forecast by city name or lat/lon (open-meteo, no key needed). ?city=Moscow",
      "id": "weather",
      "name": "weather",
      "tags": [
        "weather",
        "forecast",
        "temperature",
        "climate"
      ]
    },
    {
      "description": "Text readability: Flesch score, level, avg sentence length, keyword density, top words. ?text=<text>&keyword=",
      "id": "readability",
      "name": "readability",
      "tags": [
        "readability",
        "flesch",
        "seo",
        "content",
        "keyword density"
      ]
    },
    {
      "description": "Fetch a web page and return clean readable text. ?url=https://example.com",
      "id": "scrape",
      "name": "scrape",
      "tags": [
        "scrape",
        "extract",
        "web page",
        "reader",
        "crawl"
      ]
    },
    {
      "description": "Domain registration data via RDAP: registrar, created/updated/expires, status, nameservers. ?domain=example.com",
      "id": "whois",
      "name": "whois",
      "tags": [
        "whois",
        "domain",
        "rdap",
        "registrar",
        "expiry"
      ]
    },
    {
      "description": "Audit robots.txt + sitemap.xml of a site: rules, sitemaps listed, sitemap reachable, URL counts. ?url=<site root>",
      "id": "robots-audit",
      "name": "robots audit",
      "tags": [
        "robots",
        "sitemap",
        "seo",
        "audit",
        "crawl"
      ]
    },
    {
      "description": "SEO snapshot of a page: title, description, OG/Twitter meta, h1s, h2 count, canonical, robots meta, lang, word count. ?url=",
      "id": "seo-meta",
      "name": "seo meta",
      "tags": [
        "seo",
        "meta",
        "opengraph",
        "title",
        "description"
      ]
    },
    {
      "description": "Google SERP: organic results with position, ads count, related searches. ?q=&num=5&gl=us",
      "id": "serp-google",
      "name": "serp google",
      "tags": [
        "serp",
        "google",
        "search",
        "ranking",
        "keywords"
      ]
    },
    {
      "description": "Yandex SERP for RU-market keyword research (region by ?lr=). ?q=&lr=213",
      "id": "serp-yandex",
      "name": "serp yandex",
      "tags": [
        "yandex",
        "serp",
        "search",
        "russian",
        "ranking"
      ]
    },
    {
      "description": "Generate an Open Graph image 1200x630 from title/subtitle/theme. ?title=&subtitle=&theme=indigo|dark|green|red|blue",
      "id": "og-image",
      "name": "og image",
      "tags": [
        "og image",
        "open graph",
        "social preview",
        "banner generator",
        "image"
      ]
    },
    {
      "description": "Render a JS-heavy page in a real browser and return the visible text. ?url=",
      "id": "render-text",
      "name": "render text",
      "tags": [
        "render",
        "javascript",
        "spa",
        "scrape",
        "browser"
      ]
    },
    {
      "description": "Render any page to PDF (A4, print background) via headless Chrome. ?url=",
      "id": "pdf",
      "name": "pdf",
      "tags": [
        "pdf",
        "convert",
        "print",
        "browser",
        "render"
      ]
    },
    {
      "description": "Real browser screenshot of any page as PNG (base64), JS rendered. ?url=&width=1280&height=800&full=0|1",
      "id": "screenshot",
      "name": "screenshot",
      "tags": [
        "screenshot",
        "capture",
        "browser",
        "render",
        "image"
      ]
    },
    {
      "description": "Google Trends interest over time for a keyword (weekly points, peak). ?q=casino&geo=US&time=12-m|5-y",
      "id": "trends",
      "name": "trends",
      "tags": [
        "google trends",
        "interest over time",
        "keyword research",
        "search trends",
        "seo"
      ]
    },
    {
      "description": "Google Trends interest by region/country for a keyword. ?q=casino&geo=&time=12-m",
      "id": "trends-region",
      "name": "trends region",
      "tags": [
        "google trends",
        "interest by region",
        "geo",
        "keyword research",
        "seo"
      ]
    },
    {
      "description": "Google Trends related queries: top and rising search terms for a keyword. ?q=casino&geo=&time=12-m",
      "id": "trends-related",
      "name": "trends related",
      "tags": [
        "google trends",
        "related queries",
        "keyword ideas",
        "search trends",
        "seo"
      ]
    },
    {
      "description": "Full SEO audit report of a domain: health score 0-100, prioritized issues list, title/description/H1/canonical, robots.txt review, word count. Returns ready markdown report. ?url=https://example.com",
      "id": "seo-report",
      "name": "seo report",
      "tags": [
        "seo report",
        "site audit",
        "seo audit",
        "on-page seo",
        "domain analysis"
      ]
    }
  ],
  "url": "https://nano.stacknodehost.com"
}