{"name":"Goonbot Utility Suite","version":"4.1.0","description":"40 pay-per-call utility endpoints plus one free attestation key endpoint, on Base mainnet via x402. Web search, text processing, data transform, validation, on-chain data, JSON format, scraping, summarization, browser automation, sentiment analysis, QR/password/UUID generation, math, time conversion, and more. No API keys, no signup — pay in USDC on Base or XNO on Nano.","pricing":{"min":"$0.002","max":"$0.005","currency":"USDC","network":"Base","currency_alt":"XNO","network_alt":"Nano (nano:mainnet)"},"capabilities":["web-scraping","web-search","web-extraction","page-structure-extract","text-summarization","text-chunking","text-diff","text-cleaning","text-truncation","text-counting","text-case-transform","text-slugify","json-paths","json-formatting","csv-to-json","json-to-csv","xml-to-json","yaml-to-json","base64-encode","base64-decode","uuid-generation","password-generation","qr-generation","email-validation","url-validation","sentiment-analysis","keyword-extraction","ip-geolocation","weather-data","user-agent-parsing","hash-generation","math-evaluation","unit-conversion","timezone-conversion","onchain-gas-tracker","onchain-token-metadata","onchain-balance"],"endpoints":[{"path":"/v1/search","price":"$0.003","method":"GET","description":"Web search via DuckDuckGo — query, get results with titles and snippets.","parameters":[{"name":"query","in":"query","required":true,"type":"string","description":"Search query"},{"name":"max_results","in":"query","required":false,"type":"integer","description":"Number of results to return (default 5)"}],"request_style":"query_string","example":"GET https://api.shehriyar.ink/v1/search?query=base+usdc&max_results=3","input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"},"max_results":{"type":"integer","description":"Number of results to return (default 5)"}},"required":["query"],"x-location":"query"}},{"path":"/v1/scrape","price":"$0.003","method":"POST","description":"Extract clean text content from any URL.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to scrape text from"}},"x-location":"body"},"request_style":"json_body","example":"POST https://api.shehriyar.ink/v1/scrape  body: {\"url\": \"https://example.com\"}"},{"path":"/v1/extract","price":"$0.003","method":"GET","description":"Structured web page parse: title, author, date, and full text.","parameters":[{"name":"url","in":"query","required":true,"type":"string","description":"URL to extract structured data from"}],"request_style":"query_string","example":"GET https://api.shehriyar.ink/v1/extract?url=https://example.com","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to extract structured data from"}},"required":["url"],"x-location":"query"}},{"path":"/v1/summarize","price":"$0.003","method":"POST","description":"Extractive TF-IDF summarization — top content-rich sentences.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to summarize (max 10K chars)"}},"x-location":"body"},"request_style":"json_body","example":"POST https://api.shehriyar.ink/v1/summarize  body: {\"text\": \"...\"}"},{"path":"/v1/format-json","price":"$0.002","method":"POST","description":"Validate and pretty-format JSON with indented output.","input_schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","description":"Raw JSON string to format and validate"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/text/chunk","price":"$0.002","method":"POST","description":"Split text into fixed-size segments with optional overlap.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to split"},"chunk_size":{"type":"integer","default":500,"description":"Max chars per chunk"},"overlap":{"type":"integer","default":0,"description":"Overlap between consecutive chunks"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/text/diff","price":"$0.002","method":"POST","description":"Compare two texts and return unified diff output.","input_schema":{"type":"object","required":["text_a","text_b"],"properties":{"text_a":{"type":"string","description":"Original text"},"text_b":{"type":"string","description":"Modified text to compare"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/text/clean","price":"$0.002","method":"POST","description":"Remove extra whitespace, fix encoding issues in text.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to clean whitespace and encoding from"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/text/truncate","price":"$0.002","method":"POST","description":"Truncate text to a specified character limit with ellipsis.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to truncate"},"limit":{"type":"integer","default":100,"description":"Max length"},"by":{"type":"string","default":"chars","enum":["chars","words","sentences"],"description":"Truncation unit"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/text/count","price":"$0.002","method":"POST","description":"Count words, characters, sentences, and paragraphs.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to analyze"}},"x-location":"body"},"request_style":"json_body","example":"POST https://api.shehriyar.ink/v1/text/count  body: {\"text\": \"hello world\"}"},{"path":"/v1/text/case","price":"$0.002","method":"POST","description":"Convert text case: upper, lower, title, camel, snake, kebab.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to convert"},"case":{"type":"string","default":"upper","enum":["upper","lower","title","camel","snake","kebab"],"description":"Target case format"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/text/slugify","price":"$0.002","method":"POST","description":"Generate URL-safe slug from any text string.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to convert to URL slug"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/json/path","price":"$0.003","method":"POST","description":"Extract specific value from JSON using dot-notation path.","input_schema":{"type":"object","required":["data","path"],"properties":{"data":{"type":"object","description":"JSON object/data to query"},"path":{"type":"string","default":"$","description":"JSONPath expression"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/csv/to-json","price":"$0.003","method":"POST","description":"Convert CSV data to structured JSON array.","input_schema":{"type":"object","required":["csv"],"properties":{"csv":{"type":"string","description":"CSV text to convert to JSON"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/json/to-csv","price":"$0.003","method":"POST","description":"Convert JSON array to CSV with headers.","input_schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","description":"JSON array of objects to convert to CSV"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/xml/to-json","price":"$0.003","method":"POST","description":"Convert XML document to structured JSON.","input_schema":{"type":"object","required":["xml"],"properties":{"xml":{"type":"string","description":"XML string to convert to JSON"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/yaml/to-json","price":"$0.003","method":"POST","description":"Convert YAML content to JSON.","input_schema":{"type":"object","required":["yaml"],"properties":{"yaml":{"type":"string","description":"YAML string to convert to JSON"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/base64/encode","price":"$0.002","method":"POST","description":"Encode text or binary data to base64.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to base64-encode"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/base64/decode","price":"$0.002","method":"POST","description":"Decode base64 back to plain text.","input_schema":{"type":"object","required":["encoded"],"properties":{"encoded":{"type":"string","description":"Base64 string to decode"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/uuid/generate","price":"$0.002","method":"GET","description":"Generate UUID v4 identifiers (single or batch).","parameters":[{"name":"count","in":"query","required":false,"type":"integer","description":"How many UUIDs to generate, 1-100 (default 1)"}],"request_style":"query_string","example":"GET https://api.shehriyar.ink/v1/uuid/generate?count=5","input_schema":{"type":"object","properties":{"count":{"type":"integer","description":"How many UUIDs to generate, 1-100 (default 1)"}},"x-location":"query"}},{"path":"/v1/password/generate","price":"$0.002","method":"POST","description":"Generate cryptographically secure random passwords.","input_schema":{"type":"object","properties":{"length":{"type":"integer","default":20,"description":"Password length"},"symbols":{"type":"boolean","default":true,"description":"Include symbols"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/qr/generate","price":"$0.003","method":"POST","description":"Generate QR code as data URL for any text/URL input.","input_schema":{"type":"object","required":["data"],"properties":{"data":{"type":"string","description":"Text or URL to encode as QR code"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/validate/email","price":"$0.002","method":"POST","description":"Validate email address format and check DNS MX records.","input_schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address to validate"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/validate/url","price":"$0.002","method":"POST","description":"Validate URL format and check HTTP reachability.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to validate and check reachability"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/ip/lookup","price":"$0.003","method":"GET","description":"Get geolocation, ISP, and ASN data for an IP address.","parameters":[{"name":"ip","in":"query","required":false,"type":"string","description":"IP address to geolocate (defaults to caller's IP)"}],"request_style":"query_string","example":"GET https://api.shehriyar.ink/v1/ip/lookup?ip=8.8.8.8","input_schema":{"type":"object","properties":{"ip":{"type":"string","description":"IP address to geolocate (defaults to caller's IP)"}},"x-location":"query"}},{"path":"/v1/weather/current","price":"$0.003","method":"GET","description":"Current weather conditions for a city or coordinates.","parameters":[{"name":"location","in":"query","required":false,"type":"string","description":"City name or lat,lon (default Lahore)"}],"request_style":"query_string","example":"GET https://api.shehriyar.ink/v1/weather/current?location=Lahore","input_schema":{"type":"object","properties":{"location":{"type":"string","description":"City name or lat,lon (default Lahore)"}},"x-location":"query"}},{"path":"/v1/user-agent/parse","price":"$0.002","method":"POST","description":"Parse User-Agent string to identify browser, OS, device.","input_schema":{"type":"object","required":["user_agent"],"properties":{"user_agent":{"type":"string","description":"User-Agent string to parse"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/hash/generate","price":"$0.002","method":"POST","description":"Generate hash digests: MD5, SHA1, SHA256, SHA512.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to hash"},"algorithm":{"type":"string","default":"sha256","enum":["md5","sha1","sha256","sha512"],"description":"Hash algorithm"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/attest/response","price":"$0.005","method":"POST","description":"Ed25519-sign a payload: returns canonical SHA-256, raw SHA-256, timestamp, and a verifiable signature. Bind an agent's delivered output to a reproducible, independently checkable digest.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"description":"Any JSON value to attest (object, array, string, or number). Objects are canonicalized with sorted keys so the digest is reproducible."},"label":{"type":"string","description":"Optional human-readable label, folded into the signed document."},"include_anchor":{"type":"boolean","default":false,"description":"Include the current Base mainnet block number as a proof-of-existence timestamp."}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/attest/verify","price":"$0.002","method":"POST","description":"Verify a signed attestation and optionally re-derive the canonical digest from your own payload bytes to prove the work product is byte-identical to what was attested.","input_schema":{"type":"object","required":["attestation","signature_b64"],"properties":{"attestation":{"type":"object","description":"The `attestation` object returned by /v1/attest/response, passed back verbatim."},"signature_b64":{"type":"string","description":"The `signature_b64` returned by /v1/attest/response."},"payload":{"description":"Optional. Your copy of the original payload. If supplied, the service recomputes the canonical digest from it and reports whether it matches the attested hash."}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/math/evaluate","price":"$0.002","method":"POST","description":"Evaluate mathematical expressions safely.","input_schema":{"type":"object","required":["expression"],"properties":{"expression":{"type":"string","description":"Mathematical expression to evaluate safely"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/math/convert","price":"$0.002","method":"POST","description":"Convert between units: length, weight, temp, currency.","input_schema":{"type":"object","required":["value","from","to"],"properties":{"value":{"type":"number","description":"Numeric value to convert"},"from":{"type":"string","description":"Source unit (e.g. km, lb, c)"},"to":{"type":"string","description":"Target unit (e.g. mi, kg, f)"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/time/convert","price":"$0.002","method":"POST","description":"Convert between timezones and UNIX timestamps.","input_schema":{"type":"object","properties":{"datetime":{"type":"string","description":"ISO datetime or unix timestamp"},"from_tz":{"type":"string","default":"UTC","description":"Source timezone"},"to_tz":{"type":"string","default":"UTC","description":"Target timezone"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/onchain/gas","price":"$0.005","method":"GET","description":"Current Base mainnet gas prices (slow/avg/fast).","parameters":[],"request_style":"query_string","example":"GET https://api.shehriyar.ink/v1/onchain/gas","input_schema":{"type":"object","properties":{},"x-location":"query"}},{"path":"/v1/onchain/token-meta","price":"$0.005","method":"GET","description":"Get token metadata: symbol, decimals, total supply on Base.","parameters":[{"name":"address","in":"query","required":true,"type":"string","description":"ERC-20 token contract address on Base"}],"request_style":"query_string","example":"GET https://api.shehriyar.ink/v1/onchain/token-meta?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"ERC-20 token contract address on Base"}},"required":["address"],"x-location":"query"}},{"path":"/v1/onchain/wallet-balance","price":"$0.005","method":"GET","description":"Check ETH and USDC balance for any address on Base.","parameters":[{"name":"address","in":"query","required":true,"type":"string","description":"Wallet address on Base"}],"request_style":"query_string","example":"GET https://api.shehriyar.ink/v1/onchain/wallet-balance?address=0x3f262ee685ced4a8270cece45ebdfdb2b18f54b5","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Wallet address on Base"}},"required":["address"],"x-location":"query"}},{"path":"/v1/text/sentiment","price":"$0.004","method":"POST","description":"Score text as positive, negative, or neutral via lexicon.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to score for sentiment"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/text/keywords","price":"$0.004","method":"POST","description":"Extract key terms from text using TF-like frequency scoring.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to extract keywords from"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/browser/page","price":"$0.004","method":"POST","description":"Get JS-rendered page content via headless browser.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to get JS-rendered page content from"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/browser/screenshot","price":"$0.005","method":"POST","description":"Take full-page screenshot of any URL via headless browser.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to take a full-page screenshot of"}},"x-location":"body"},"request_style":"json_body","example":null},{"path":"/v1/browser/agent","price":"$0.05","method":"POST","description":"Agentic browser (fast lane, bu-mini): an LLM drives a real cloud browser through a multi-step task and answers in text. Handles JS-only pages, anti-bot walls, navigation, pagination, forms and ordered table extraction. If the task outlasts the HTTP window you get HTTP 202 and a free poll URL.","input_schema":{"type":"object","required":["task"],"properties":{"task":{"type":"string","description":"What the agent should do, in plain language. It drives a real cloud browser and answers with text. Max 4000 chars."},"start_url":{"type":"string","description":"Optional URL to open first. If omitted the agent picks its own starting point from the task."},"max_seconds":{"type":"integer","default":80,"description":"How long to hold the HTTP connection before answering 202 with a poll URL. Clamped to 20-80 (Cloudflare cuts the connection at ~100s)."}},"x-location":"body"},"request_style":"json_body","example":"POST https://api.shehriyar.ink/v1/browser/agent  body: {{\"task\": \"Go to https://example.com and return the H1 heading\"}}"},{"path":"/v1/browser/agent/frontier","price":"$0.75","method":"POST","description":"Agentic browser (frontier lane, Claude Opus 4.6): same contract as the fast lane for hard, ambiguous or long-horizon tasks. ~17x the model cost, so buy it when a wrong answer is more expensive than $0.75.","input_schema":{"type":"object","required":["task"],"properties":{"task":{"type":"string","description":"What the agent should do, in plain language. Max 4000 chars."},"start_url":{"type":"string","description":"Optional URL to open first."},"max_seconds":{"type":"integer","default":80,"description":"Seconds to hold the connection before answering 202 with a poll URL. Clamped to 20-80."}},"x-location":"body"},"request_style":"json_body","example":"POST https://api.shehriyar.ink/v1/browser/agent/frontier  body: {{\"task\": \"Go to https://news.ycombinator.com and return the rank-1 story title, score and link URL\"}}"}],"x402":{"discovery":"/.well-known/x402","protocol":"x402","version":"2","facilitator_type":"solvador","network":"eip155:8453"},"payout":{"receiver":"0x3f262ee685ced4a8270cece45ebdfdb2b18f54b5","network":"eip155:8453","accepted_assets":["USDC","ETH"],"preferred_asset":"USDC","address":"0x3f262ee685ced4a8270cece45ebdfdb2b18f54b5","note":"Single Base EVM address. Receives USDC (priced rail) and ETH. The 402 Challenge is authoritative for payment terms."},"_links":{"self":{"href":"https://api.shehriyar.ink/.well-known/agent.json"},"x402_discovery":{"href":"https://api.shehriyar.ink/.well-known/x402"},"openapi":{"href":"https://api.shehriyar.ink/openapi.json"},"health":{"href":"https://api.shehriyar.ink/health"},"payout":{"href":"https://api.shehriyar.ink/.well-known/x402"}}}