{"info":{"title":"Donnyautomation","version":"1.0.0"},"openapi":"3.1.0","paths":{"/call":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Call","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Cross-DEX price, liquidity and gross arbitrage spread for ONE BSC pair in a single call, across PancakeSwap v2/v3, Biswap and ApeSwap. Returns pricesByVenue[], bestBuy, bestSell, midSpreadBps, crossDex (grossSpreadBps, grossUsd, optimalInput) and liquidity at a stated blockNumber. Requires ?pair=SYM/SYM (first symbol is USD-priceable); optional ?fee= pins one v3 tier. Errors: 400 bad_pair|bad_fee,"}},"/edgar/events":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"50000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Edgar Events","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Form 8-K material events for one issuer SINCE a cursor, each item code decoded to the title SEC prints (2.02 Results of Operations, 5.02 Departure of Directors, 1.05 Cybersecurity Incidents). Requires ?since=YYYY-MM-DD AND ?ticker= or ?cik=. Optional ?items=1.01,5.02 (matches ANY), ?limit=1..200. Errors: 400 missing_since|missing_issuer|bad_items, 404 unknown_ticker|unknown_cik, 502 edgar_unavaila"}},"/geocode":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Geocode","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Forward geocoding: street address or place name to latitude/longitude, worldwide, via OpenStreetMap Nominatim. Returns best {lat, lon, displayName, type, importance}, count and attribution. Requires ?q=<address or place name>, max 300 chars. Errors: 400 missing_query|query_too_long, 404 no_match - a coordinate is never guessed, 502 geocoder_unavailable|geocoder_failed. The OPPOSITE direction (coor"}},"/lei":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"30000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Lei","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Legal Entity Identifier lookup from the GLEIF golden copy, searchable by NAME - knowing the LEI already is the hard part. Returns records[] with lei, legalName, status, jurisdiction, legalAddress and a lapsed flag; LAPSED and RETIRED entities are returned, not hidden - a filtered record and no record look identical. Requires ?q=<legal name, max 200> or ?lei=<20 chars>. Errors: 400 missing_query|ba"}},"/markdown":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Markdown","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Fetch a public article or PDF and return clean Markdown plus title, byline, siteName, excerpt and wordCount. HTML is extracted with Firefox reader-mode rules; PDFs return their text layer. Requires ?url=<public http(s) URL>. Errors: 400 missing_url|bad_url, 403 blocked_private (private and internal hosts refused, every redirect hop re-checked), 413 too_large above 8 MB, 422 no_text_layer for scann"}},"/reverse-geocode":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Reverse Geocode","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Reverse geocoding: latitude/longitude to a street address, worldwide, via OpenStreetMap Nominatim. Returns displayName plus structured address (road, city, state, postcode, country), place type and attribution. Requires BOTH ?lat= and ?lon=. Errors: 400 bad_coords (either missing or non-numeric) or coords_out_of_range (lat -90..90, lon -180..180), 404 no_match for ocean or unmapped points, 502 geo"}},"/sanctions":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Sanctions","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"OFAC screening against the Treasury SDN and Consolidated lists - 19,600+ parties, 40,000+ names including aliases. Returns match, riskLevel, matches[] with score, matchedName, matchedOn and programs, plus screened and notScreened naming what was NOT checked (EU, UK OFSI, UN). Word order does not matter: OFAC stores people SURNAME, Given. Requires ?name= (max 200); optional ?minScore, ?type, ?limit"}},"/search":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Search","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Free-text web search to ranked organic results, sponsored rows excluded. Returns results[] with rank, title, real destination url, displayUrl and snippet, plus count and attribution. Requires ?q= (max 500 chars); optional ?count=1..25 (default 10). Errors: 400 missing_query|query_too_long|bad_count, 404 no_match, 503 upstream_unavailable. Results are NOT fetched or verified - to read one, pass its"}},"/suggest":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Suggest","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Live Google Autocomplete for a topic, expanded across question modifiers (how, what, why, is, can, does) and comparison modifiers (vs, or), split into suggestions, questions and comparisons. Off-topic rows are dropped and counted. Requires ?q= (max 200 chars); optional ?depth=full|basic, ?country=us, ?lang=en. Errors: 400 missing_q|q_too_long|bad_depth, 504 suggest_timeout. This is DEMAND (what pe"}},"/treasury":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"30000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Treasury","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"US Treasury par yield curve, every constant maturity from 1 month to 30 years for a published business day. Returns curve[] with tenor, months and percent, spreads (2s10s, 3m10y, 5s30s) and an explicit inversion flag - the real question is whether the curve is inverted, not what fourteen numbers are. A tenor Treasury did not publish is null, never zero. Pass ?latest=1 OR ?date=YYYY-MM-DD, not both"}},"/v4hooks":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: V4hooks","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Uniswap v4 hook capability scan on Base mainnet. Decodes all 14 permission bits from the hook address per v4-core Hooks.sol, flags swap custody, fee-taking and EIP-1967 upgradeability, and verifies source by Basescan/Sourcify/Blockscout consensus. Returns custodyClass PASSIVE|FLOW_CONTROL|FEE_TAKING|SWAP_CUSTODY|OPAQUE, flags[], riskFlags[] and verificationState. Requires ?address=0x + 40 hex. Err"}},"/weather":{"get":{"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Donnyautomation: Weather","intent":"charge","method":"evm","recipient":"0x2740651e046c59aB2A6510401140643292d3a96F"}]},"summary":"Current conditions and up to a 7-day forecast for any coordinates, via Open-Meteo. Returns current (tempC, feelsLikeC, humidityPct, windKmh, weatherCode, description), daily[] highs/lows/precipitation, and explicit units. Requires BOTH ?lat= and ?lon=; optional ?days=1..7 (default 3, clamped not rejected). Errors: 400 bad_coords|coords_out_of_range|bad_days, 502 weather_unavailable|weather_malform"}}},"x-service-info":{"description":"Donnyautomation is an x402-native service at https://x402.donnyautomation.com, indexed from the x402 Bazaar (Coinbase's public discovery directory). It charges callers itself in USDC on Base and is paid directly at its own wallet; Monex Protocol passes your request and payment headers through untouched. 12 endpoints listed."}}