{
 "protocolVersion": "0.3.0",
 "name": "x402-endpoints",
 "description": "Paid x402 API tools for AI agents (USDC on Base). Official EU/global registries (GLEIF LEI, VIES VAT, Companies House, INSEE, EUR-Lex, ECB, BODACC, CVE, FDA), crypto pre-trade safety (Solana token rug/honeypot checks, perp derivatives, DEX/CEX spread), and agent decision endpoints (due-diligence dossiers, action preflight clearance, content security scans, output QA, seller trust score, pre-payment firewall, OFAC wallet sanctions screening, macro/economic snapshot, cross-exchange trading signal). Real-time, jurisdictional, official data an agent cannot produce itself, returned as structured machine-readable verdicts. No API key, no account: payment is authentication.",
 "url": "https://x402-endpoints.onrender.com",
 "preferredTransport": "JSONRPC",
 "provider": {
  "organization": "x402-endpoints",
  "url": "https://x402-endpoints.onrender.com"
 },
 "version": "0.1.0",
 "capabilities": {
  "streaming": false,
  "pushNotifications": false,
  "stateTransitionHistory": false
 },
 "defaultInputModes": [
  "application/json"
 ],
 "defaultOutputModes": [
  "application/json"
 ],
 "payments": {
  "protocol": "x402",
  "network": "eip155:8453",
  "asset": {
   "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "symbol": "USDC",
   "decimals": 6
  },
  "payTo": "0x1D1B81247C407521E2A01F3E21514870dcf1620f",
  "facilitator": "https://api.cdp.coinbase.com/platform/v2/x402"
 },
 "skills": [
  {
   "id": "gleif-lei-lookup",
   "name": "GLEIF LEI Lookup",
   "description": "Look up any Legal Entity Identifier (LEI) against the official GLEIF global registry — returns legal name, status, jurisdiction, legal form and registered address, real-time, worldwide coverage. For regulatory reporting (EMIR/MiFID), KYB and counterparty due-diligence agents.",
   "tags": [
    "lei",
    "gleif",
    "kyb",
    "compliance",
    "regulatory"
   ],
   "examples": [
    "What is the legal entity behind LEI 529900T8BM49AURSDO55?",
    "Look up the GLEIF record for this LEI and tell me if it is still active."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/gleif/lei",
    "queryParams": {
     "lei": {
      "type": "string",
      "description": "20-character LEI, e.g. '529900T8BM49AURSDO55'",
      "pattern": "^[A-Z0-9]{20}$",
      "required": true
     }
    }
   },
   "price": "$0.01",
   "source": "GLEIF API v1 (gleif.org)"
  },
  {
   "id": "vies-vat-check",
   "name": "EU VAT VIES Check",
   "description": "Validate an EU VAT number against the official EU VIES registry across all 27 member states — returns valid/invalid plus the registered company name and address. Distinguishes 'invalid' (number does not exist) from 'service unavailable' (national DB offline). For invoicing, B2B onboarding, KYB and tax-compliance agents.",
   "tags": [
    "vat",
    "vies",
    "eu",
    "kyb",
    "compliance"
   ],
   "examples": [
    "Is VAT number IE6388047V valid and which company does it belong to?",
    "Check this EU VAT number against VIES and return the registered name."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/vies/vat",
    "queryParams": {
     "country": {
      "type": "string",
      "description": "2-letter EU member state code, e.g. 'IE' (use 'EL' for Greece)",
      "pattern": "^[A-Z]{2}$",
      "required": true
     },
     "vat": {
      "type": "string",
      "description": "VAT number without country prefix, e.g. '6388047V'",
      "required": true
     }
    }
   },
   "price": "$0.01",
   "source": "EU VIES REST API (ec.europa.eu)"
  },
  {
   "id": "polymarket-odds",
   "name": "Polymarket Odds",
   "description": "Live prediction market odds and implied probabilities from Polymarket — give a market id or slug, get each outcome with its probability (0-1), volume, liquidity and resolution status. For event-forecasting, hedging and research agents.",
   "tags": [
    "polymarket",
    "prediction-market",
    "odds",
    "probability"
   ],
   "examples": [
    "What probability does Polymarket give to market 2654605 right now?",
    "Get the live odds and outcomes for this Polymarket market."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/polymarket/odds",
    "queryParams": {
     "market": {
      "type": "string",
      "description": "Polymarket market id or slug, e.g. '2654605' or 'will-it-rain-tomorrow'",
      "required": true
     }
    }
   },
   "price": "$0.05",
   "source": "Polymarket Gamma API (gamma-api.polymarket.com)"
  },
  {
   "id": "flights-states",
   "name": "Live Aircraft States",
   "description": "Real-time aircraft states worldwide from adsb.fi open data (ADS-B) — give a bounding box, get every aircraft in the area with live position, altitude, speed, heading and ground status. For travel, logistics and tracking agents. Data by adsb.fi (ODbL).",
   "tags": [
    "flights",
    "adsb-fi",
    "aircraft",
    "ads-b",
    "tracking"
   ],
   "examples": [
    "Which aircraft are currently flying over Paris (bbox 48,2 to 49,3)?",
    "Give me the live aircraft states in this bounding box."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/flights/states",
    "queryParams": {
     "lamin": {
      "type": "number",
      "description": "Min latitude of bounding box, e.g. 48.0",
      "required": true
     },
     "lomin": {
      "type": "number",
      "description": "Min longitude of bounding box, e.g. 2.0",
      "required": true
     },
     "lamax": {
      "type": "number",
      "description": "Max latitude of bounding box, e.g. 49.0",
      "required": true
     },
     "lomax": {
      "type": "number",
      "description": "Max longitude of bounding box, e.g. 3.0",
      "required": true
     }
    }
   },
   "price": "$0.01",
   "source": "adsb.fi open data (opendata.adsb.fi)"
  },
  {
   "id": "ev-charging",
   "name": "EV Charging Stations",
   "description": "EV charging stations worldwide from Open Charge Map — give a location and radius, get nearby stations with operator, connector type, power (kW), number of points and status. For routing, fleet and trip-planning agents.",
   "tags": [
    "ev",
    "charging",
    "open-charge-map",
    "mobility",
    "routing"
   ],
   "examples": [
    "Find EV charging stations within 5 km of 48.85, 2.35.",
    "List nearby chargers with connector type and power."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/ev/charging",
    "queryParams": {
     "latitude": {
      "type": "number",
      "description": "Latitude of search center, e.g. 48.85",
      "required": true
     },
     "longitude": {
      "type": "number",
      "description": "Longitude of search center, e.g. 2.35",
      "required": true
     },
     "distance": {
      "type": "number",
      "description": "Search radius in km (0-200], e.g. 5",
      "required": false
     },
     "maxresults": {
      "type": "integer",
      "description": "Max stations to return [1-200], e.g. 20",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "Open Charge Map (api.openchargemap.io)"
  },
  {
   "id": "bodacc-announcements",
   "name": "BODACC Announcements",
   "description": "Search the official French BODACC registry (DILA) for company legal announcements: incorporations, modifications, radiations and insolvencies. For credit-risk, supplier-risk, KYB and AML agents.",
   "tags": [
    "bodacc",
    "france",
    "company",
    "insolvency",
    "kyb"
   ],
   "examples": [
    "Find BODACC announcements for the company OVH.",
    "Is there any insolvency proceeding recorded for SIREN 424761419?"
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/bodacc/annonces",
    "queryParams": {
     "q": {
      "type": "string",
      "description": "Company name, SIREN or RCS, e.g. 'OVH' or '424761419'",
      "required": true
     },
     "famille": {
      "type": "string",
      "description": "Optional: creation | modification | radiation | depot | collective",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max announcements [1-100], e.g. 10",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "BODACC — DILA via OpenDataSoft (bodacc-datadila.opendatasoft.com)"
  },
  {
   "id": "ted-tenders",
   "name": "EU Public Tenders (TED)",
   "description": "Search the official EU TED (Tenders Electronic Daily) for public procurement notices across the 27+ member states by keywords, buyer country and CPV code. For business-development, bid and market-intelligence agents.",
   "tags": [
    "ted",
    "procurement",
    "tenders",
    "eu",
    "business-development"
   ],
   "examples": [
    "Find open EU tenders for cloud software in France.",
    "List recent public procurement notices under CPV 72000000."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/ted/tenders",
    "queryParams": {
     "query": {
      "type": "string",
      "description": "Keywords, e.g. 'cloud software'",
      "required": false
     },
     "country": {
      "type": "string",
      "description": "Buyer country ISO-3 code, e.g. 'FRA', 'DEU'",
      "required": false
     },
     "cpv": {
      "type": "string",
      "description": "CPV code prefix, e.g. '72000000' (IT services)",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max notices [1-50], e.g. 10",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "EU TED — Tenders Electronic Daily (api.ted.europa.eu)"
  },
  {
   "id": "eurlex-search",
   "name": "EUR-Lex Search",
   "description": "Search official EUR-Lex for EU legislation, treaties, case law and legal acts by keyword — returns CELEX number, title and date. Multilingual. For legal-research, regulatory and compliance agents.",
   "tags": [
    "eurlex",
    "eu-law",
    "legislation",
    "case-law",
    "compliance"
   ],
   "examples": [
    "Find EU legal acts about data protection.",
    "Search EUR-Lex for recent case law on consumer rights in French."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/eurlex/search",
    "queryParams": {
     "query": {
      "type": "string",
      "description": "Keywords searched in act titles, e.g. 'data protection'",
      "required": true
     },
     "language": {
      "type": "string",
      "description": "Language: en, fr, de, es, it, nl, pl (default en)",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max documents [1-50], e.g. 10",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "EUR-Lex / CELLAR SPARQL (publications.europa.eu)"
  },
  {
   "id": "sanctions-screen",
   "name": "EU Sanctions Screening",
   "description": "Screen a name against the official EU consolidated sanctions list (FISMA) — returns matches with a similarity score and context (EU reference, type, programme), not a binary yes/no. For KYB, AML and payment-compliance agents.",
   "tags": [
    "sanctions",
    "compliance",
    "aml",
    "eu",
    "kyb"
   ],
   "examples": [
    "Screen the name 'Saddam Hussein' against EU sanctions.",
    "Is this company on the EU consolidated sanctions list?"
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/sanctions/screen",
    "queryParams": {
     "name": {
      "type": "string",
      "description": "Name to screen (person or entity), e.g. 'Saddam Hussein'",
      "required": true
     },
     "type": {
      "type": "string",
      "description": "Optional: 'person' or 'enterprise'",
      "required": false
     },
     "threshold": {
      "type": "number",
      "description": "Min similarity 0-1 to report a match (default 0.7)",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max matches [1-50], e.g. 10",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "EU Consolidated Financial Sanctions List — FISMA (webgate.ec.europa.eu)"
  },
  {
   "id": "cve-lookup",
   "name": "CVE Vulnerability Lookup",
   "description": "Security vulnerability lookup (CVE) against the official NVD (NIST) database — by exact CVE id or by keyword/product. Returns description, CVSS severity, CWE weaknesses and references. For devsecops, SBOM and dependency-audit agents.",
   "tags": [
    "cve",
    "security",
    "vulnerability",
    "nvd",
    "devsecops"
   ],
   "examples": [
    "Look up CVE-2021-44228 and its CVSS severity.",
    "Find known vulnerabilities for log4j."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/cve/lookup",
    "queryParams": {
     "cve_id": {
      "type": "string",
      "description": "Exact CVE id, e.g. 'CVE-2021-44228'",
      "required": false
     },
     "keyword": {
      "type": "string",
      "description": "Keyword / product search, e.g. 'log4j'",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max results for keyword search [1-20], e.g. 10",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "NVD — NIST National Vulnerability Database v2.0 (services.nvd.nist.gov)"
  },
  {
   "id": "recalls-search",
   "name": "FDA Product Recalls",
   "description": "Product recall lookup (drugs/devices/food), Class I/II/III, against the official FDA openFDA enforcement reports — by product, firm or reason. Coverage US. For e-commerce, supply-chain, pharmacovigilance and compliance agents.",
   "tags": [
    "recalls",
    "fda",
    "openfda",
    "safety",
    "compliance"
   ],
   "examples": [
    "Are there any FDA recalls for metformin?",
    "Find Class I drug recalls related to contamination."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/recalls/search",
    "queryParams": {
     "query": {
      "type": "string",
      "description": "Product, firm or reason, e.g. 'metformin' or 'contamination'",
      "required": true
     },
     "category": {
      "type": "string",
      "description": "drug | device | food (default drug)",
      "required": false
     },
     "classification": {
      "type": "string",
      "description": "Recall class: I, II or III (optional)",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max recalls [1-1000], e.g. 20",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "openFDA — FDA enforcement reports (api.fda.gov)"
  },
  {
   "id": "drug-label",
   "name": "FDA Drug Labels",
   "description": "Drug interactions, warnings and contraindications lookup from the official FDA openFDA drug labels — by generic or brand name. Returns the key label sections. Coverage US. For healthcare, pharmacy and clinical-decision-support agents. Not medical advice.",
   "tags": [
    "drug",
    "fda",
    "openfda",
    "interactions",
    "healthcare"
   ],
   "examples": [
    "What are the drug interactions and warnings for ibuprofen?",
    "Get the FDA label contraindications for Advil."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/drug/label",
    "queryParams": {
     "drug": {
      "type": "string",
      "description": "Drug generic or brand name, e.g. 'ibuprofen' or 'Advil'",
      "required": true
     },
     "limit": {
      "type": "integer",
      "description": "Max labels [1-10], e.g. 1",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "openFDA — FDA drug labels (api.fda.gov)"
  },
  {
   "id": "osm-building-footprint",
   "name": "OSM Building Footprint",
   "description": "OpenStreetMap building footprints via Overpass — give a coordinate (or bounding box) and get building geometry as GeoJSON, server-computed footprint area (m²), levels and height by coordinate. Worldwide coverage. For real-estate, insurance, solar, geospatial and urban-planning agents.",
   "tags": [
    "openstreetmap",
    "building",
    "geospatial",
    "overpass",
    "real-estate"
   ],
   "examples": [
    "Get the building footprint and floor area at latitude 48.8584, longitude 2.2945.",
    "Return GeoJSON polygons of buildings within 50 metres of this coordinate."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/osm/building-footprint",
    "queryParams": {
     "lat": {
      "type": "number",
      "description": "Latitude of the point, e.g. 48.8584",
      "required": false
     },
     "lon": {
      "type": "number",
      "description": "Longitude of the point, e.g. 2.2945",
      "required": false
     },
     "radius": {
      "type": "integer",
      "description": "Search radius in metres [1-200], default 50",
      "required": false
     },
     "bbox": {
      "type": "string",
      "description": "Alternative to lat/lon: 'south,west,north,east' (max ~2km span)",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "OpenStreetMap via Overpass API (overpass-api.de)"
  },
  {
   "id": "climate-risk-score",
   "name": "Climate Risk Score",
   "description": "Derived climate risk score from Open-Meteo CMIP6 projections — a composite heat/drought/extreme-rain risk score (0-100) by coordinate and scenario, comparing a baseline to a future horizon. Worldwide. Derived/heuristic, NOT an official rating; the underlying CMIP6 HighResMIP dataset is a single high-emissions pathway and does not differentiate SSP scenarios. For property due-diligence, ESG, parametric-insurance and siting agents.",
   "tags": [
    "climate",
    "risk-score",
    "cmip6",
    "geospatial",
    "esg"
   ],
   "examples": [
    "Give me a climate risk score for latitude 48.85, longitude 2.35 at horizon 2050.",
    "How does heat and drought risk change versus baseline for this coordinate?"
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/climate-risk/score",
    "queryParams": {
     "lat": {
      "type": "number",
      "description": "Latitude, e.g. 48.85",
      "required": true
     },
     "lon": {
      "type": "number",
      "description": "Longitude, e.g. 2.35",
      "required": true
     },
     "scenario": {
      "type": "string",
      "description": "Emission scenario label: ssp245 | ssp585 (informational, see methodology)",
      "required": false
     },
     "horizon": {
      "type": "integer",
      "description": "Future target year [2030-2050], e.g. 2050",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "Open-Meteo Climate API (climate-api.open-meteo.com) — CMIP6 HighResMIP, CC BY 4.0"
  },
  {
   "id": "polymarket-resolution",
   "name": "Polymarket Resolution",
   "description": "Polymarket resolution status via Gamma API — market resolution, winning outcome and resolution source lookup by slug or condition id (or list recent resolved markets). Distinct from live odds: returns whether a market is closed and which outcome won. Coverage Polymarket markets. For settlement, audit, research and event-forecasting agents.",
   "tags": [
    "polymarket",
    "resolution",
    "prediction-market",
    "oracle",
    "settlement"
   ],
   "examples": [
    "Did the Polymarket market 'will-donald-trump-win-the-2024-us-presidential-election' resolve, and who won?",
    "List the most recently resolved Polymarket markets with their winning outcomes."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/polymarket/resolution",
    "queryParams": {
     "slug": {
      "type": "string",
      "description": "Market slug, e.g. 'will-donald-trump-win-the-2024-us-presidential-election'",
      "required": false
     },
     "condition_id": {
      "type": "string",
      "description": "On-chain condition id, e.g. '0x1fad72...'",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max markets when listing resolved markets [1-50], e.g. 20",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "Polymarket Gamma API (gamma-api.polymarket.com)"
  },
  {
   "id": "solar-building-insights",
   "name": "Google Solar Insights",
   "description": "Rooftop solar potential, panel capacity, sunshine hours and carbon offset by coordinate from the official Google Maps Platform Solar API — returns max panel count, usable roof area, annual sunshine hours and carbon-offset factor for the closest building. Worldwide partial coverage (EU well covered). For solar-sizing, real-estate energy scoring and carbon/ROI agents.",
   "tags": [
    "solar",
    "google",
    "rooftop",
    "energy",
    "real-estate"
   ],
   "examples": [
    "What is the rooftop solar potential at latitude 48.139, longitude 11.566?",
    "How many solar panels fit on the building at this coordinate and what's the annual sunshine?"
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/solar/building-insights",
    "queryParams": {
     "lat": {
      "type": "number",
      "description": "Latitude of the building, e.g. 48.139",
      "required": true
     },
     "lon": {
      "type": "number",
      "description": "Longitude of the building, e.g. 11.566",
      "required": true
     },
     "quality": {
      "type": "string",
      "description": "Required imagery quality: HIGH | MEDIUM | BASE (default HIGH)",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "Google Maps Platform Solar API (solar.googleapis.com)"
  },
  {
   "id": "uk-companies-search",
   "name": "UK Companies House",
   "description": "Search the official UK Companies House register — UK company search, status, type and registered details lookup (KYB) by name or number, or fetch a detailed company profile (registered address, SIC codes, officers with post-ECCTA identity verification status) by company number. Official UK register coverage. For KYB, AML and supplier due-diligence agents.",
   "tags": [
    "companies-house",
    "uk",
    "kyb",
    "company-registry",
    "compliance"
   ],
   "examples": [
    "Search UK Companies House for Tesco and return the company numbers and status.",
    "Get the detailed Companies House profile for company number 00445790."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/uk-companies/search",
    "queryParams": {
     "q": {
      "type": "string",
      "description": "Company name or number, e.g. 'Tesco' or '00445790'",
      "required": false
     },
     "company_number": {
      "type": "string",
      "description": "If set, return the detailed profile for this number, e.g. '00445790'",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max results [1-50], e.g. 20",
      "required": false
     },
     "start_index": {
      "type": "integer",
      "description": "Pagination offset, e.g. 0",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "UK Companies House Public Data API (api.company-information.service.gov.uk)"
  },
  {
   "id": "patents-search",
   "name": "EPO Patent Search",
   "description": "European patent search and bibliographic lookup by number, title, applicant or inventor against the official European Patent Office (EPO) Open Patent Services — returns publication number, country, kind code, dates, multilingual titles, applicants, inventors, IPC/CPC classifications and INPADOC family id. Coverage EU and worldwide (100+ patent offices). For IP due-diligence, freedom-to-operate, prior-art and R&D agents.",
   "tags": [
    "patents",
    "epo",
    "ip",
    "research",
    "due-diligence"
   ],
   "examples": [
    "Look up the bibliographic data for patent EP1000000.",
    "Find European patents by applicant Siemens published in 2022."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/patents/search",
    "queryParams": {
     "publication_number": {
      "type": "string",
      "description": "If set, biblio lookup for this number, e.g. 'EP1000000'",
      "required": false
     },
     "title": {
      "type": "string",
      "description": "Title keyword (CQL ti=), e.g. 'quantum computing'",
      "required": false
     },
     "applicant": {
      "type": "string",
      "description": "Applicant / assignee (CQL pa=), e.g. 'Siemens'",
      "required": false
     },
     "inventor": {
      "type": "string",
      "description": "Inventor name (CQL in=), e.g. 'Shannon'",
      "required": false
     },
     "date_from": {
      "type": "string",
      "description": "Publication date from, ISO YYYY-MM-DD",
      "required": false
     },
     "date_to": {
      "type": "string",
      "description": "Publication date to, ISO YYYY-MM-DD",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max patents [1-50], e.g. 20",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "EPO Open Patent Services v3.2 (ops.epo.org)"
  },
  {
   "id": "fr-sirene-lookup",
   "name": "INSEE Sirene Lookup",
   "description": "French company/establishment lookup by SIREN, SIRET or name against the official INSEE Sirene register (France) — returns legal name, administrative status, NAF/APE code, creation date, headcount band and registered address. For KYB, AML and supplier due-diligence agents (France).",
   "tags": [
    "sirene",
    "insee",
    "france",
    "kyb",
    "compliance"
   ],
   "examples": [
    "Look up the French establishment with SIRET 44306184100047 in the INSEE Sirene register.",
    "What is the status and NAF code of SIREN 443061841?"
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/fr-sirene/lookup",
    "queryParams": {
     "siret": {
      "type": "string",
      "description": "14-digit SIRET (establishment), e.g. '44306184100047'",
      "required": false
     },
     "siren": {
      "type": "string",
      "description": "9-digit SIREN (legal unit), e.g. '443061841'",
      "required": false
     },
     "q": {
      "type": "string",
      "description": "Free-text / multi-criteria search, e.g. 'denominationUniteLegale:\"GOOGLE FRANCE\"'",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max results for search [1-100], e.g. 20",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "INSEE Sirene V3.11 (api.insee.fr)"
  },
  {
   "id": "iban-validate",
   "name": "IBAN Validation",
   "description": "IBAN format validation (ISO 13616 mod-97) — SEPA/EU IBAN structural validation and country/bank-code extraction. Returns valid/invalid with reason, country code, check digits, bank code and grouped formatting. Format check, NOT account existence. For payment, onboarding and treasury agents.",
   "tags": [
    "iban",
    "sepa",
    "payments",
    "validation",
    "fintech"
   ],
   "examples": [
    "Is the IBAN FR1420041010050500013M02606 structurally valid?",
    "Validate this IBAN and extract its country and bank code."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/iban/validate",
    "queryParams": {
     "iban": {
      "type": "string",
      "description": "IBAN to validate, e.g. 'FR1420041010050500013M02606'",
      "required": true
     }
    }
   },
   "price": "$0.01",
   "source": "ISO 13616 mod-97 local validation (no external source)"
  },
  {
   "id": "fr-legifrance-search",
   "name": "Légifrance Search",
   "description": "Official Légifrance (French law, via DILA/PISTE) — French legal texts, codes and articles search and lookup by keyword and corpus (codes, laws/decrees, JORF), or consult a text by id. Complements EUR-Lex (EU law) on the national French side. For legal-research, regulatory and compliance agents.",
   "tags": [
    "legifrance",
    "france",
    "law",
    "legislation",
    "compliance"
   ],
   "examples": [
    "Search Légifrance for French laws about 'données personnelles'.",
    "Find the French decree texts (LODA) matching this keyword."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/fr-legifrance/search",
    "queryParams": {
     "q": {
      "type": "string",
      "description": "Keyword search in French legal texts, e.g. 'données personnelles'",
      "required": false
     },
     "fond": {
      "type": "string",
      "description": "Corpus: LODA_DATE (laws/decrees) | CODE_DATE | JORF (default LODA_DATE)",
      "required": false
     },
     "text_id": {
      "type": "string",
      "description": "If set, consult a specific text by id/cid instead of searching",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max results [1-50], e.g. 10",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "Légifrance via DILA/PISTE (api.piste.gouv.fr)"
  },
  {
   "id": "ecb-exchange-rate",
   "name": "ECB Exchange Rate",
   "description": "Official European Central Bank (ECB) euro reference exchange rates — EUR foreign exchange reference rate lookup by currency (29 currencies), latest or by date. Reference rates (published ~16:00 CET on working days), not live market rates. For pricing, accounting, FX and treasury agents.",
   "tags": [
    "ecb",
    "forex",
    "eur",
    "reference-rate",
    "treasury"
   ],
   "examples": [
    "What is the latest ECB euro reference rate for USD?",
    "Give me the EUR/GBP reference rate and its observation date."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/ecb/exchange-rate",
    "queryParams": {
     "currency": {
      "type": "string",
      "description": "3-letter ISO currency code, e.g. 'USD', 'GBP', 'CHF', 'JPY'",
      "required": true
     },
     "frequency": {
      "type": "string",
      "description": "D (daily, default) or M (monthly)",
      "required": false
     },
     "date": {
      "type": "string",
      "description": "Optional observation date ISO YYYY-MM-DD; default = latest available",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "European Central Bank SDMX 2.1 (data-api.ecb.europa.eu)"
  },
  {
   "id": "token-safety",
   "name": "Token Safety Check",
   "description": "Token safety check before buying — is this token a honeypot or a rug pull? Bundles honeypot detection, buy/sell tax, holder concentration, LP lock and liquidity (GoPlus, Honeypot.is, DexScreener) into a single 0-100 token security risk score with a clear buy/avoid verdict. One call replaces three lookups. EVM chains.",
   "tags": [
    "token-safety",
    "honeypot",
    "rug-check",
    "token-security",
    "risk-score"
   ],
   "examples": [
    "Use Token Safety Check for token-safety.",
    "Call /crypto/token-safety and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/crypto/token-safety",
    "queryParams": {
     "token": {
      "type": "string",
      "description": "Token contract address (0x + 40 hex)",
      "required": true
     },
     "chain": {
      "type": "string",
      "description": "base | ethereum | bsc | polygon | arbitrum | optimism | avalanche (default base)",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "GoPlus Security + Honeypot.is + DexScreener"
  },
  {
   "id": "derivatives-radar",
   "name": "Perp Funding & OI Radar",
   "description": "Perpetual funding rates, open interest and long/short ratios across Binance, Bybit, OKX and Hyperliquid in one call, plus the computed funding-rate arbitrage spread between venues and a crowding signal. Multi-venue perp derivatives data, resilient: returns whatever venues respond. For trading and funding-arbitrage agents.",
   "tags": [
    "funding-rate",
    "perp",
    "open-interest",
    "long-short",
    "derivatives"
   ],
   "examples": [
    "Use Perp Funding & OI Radar for funding-rate.",
    "Call /crypto/derivatives-radar and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/crypto/derivatives-radar",
    "queryParams": {
     "symbol": {
      "type": "string",
      "description": "Coin ticker, e.g. 'BTC', 'ETH', 'SOL'",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "Binance + Bybit + OKX + Hyperliquid (perp public APIs)"
  },
  {
   "id": "wallet-xray",
   "name": "Wallet Risk X-Ray",
   "description": "Wallet risk analysis in one call — native + ERC-20 balances, USD portfolio valuation, token count and an OFAC sanctions flag (Blockscout, DexScreener, OFAC list). A full on-chain wallet x-ray with risk flags, where primitives serve one field per call this returns the whole valued portfolio plus risk. EVM chains.",
   "tags": [
    "wallet",
    "risk-analysis",
    "portfolio",
    "sanctions",
    "onchain"
   ],
   "examples": [
    "Use Wallet Risk X-Ray for wallet.",
    "Call /crypto/wallet-xray and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/crypto/wallet-xray",
    "queryParams": {
     "address": {
      "type": "string",
      "description": "Wallet address (0x + 40 hex)",
      "required": true
     },
     "chain": {
      "type": "string",
      "description": "base | ethereum | optimism | arbitrum | polygon | gnosis (default base)",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "Blockscout + DexScreener + OFAC sanctioned-address list"
  },
  {
   "id": "dex-cex-spread",
   "name": "DEX-CEX Arbitrage Spread",
   "description": "DEX vs CEX arbitrage spread — the price difference between DEX and CEX with the fee-adjusted NET spread and execution direction, not two raw prices. Compares the most liquid DEX pair (DexScreener) to CEX spot (Binance/Bybit), subtracts taker+swap fees, and flags any profitable arbitrage opportunity. For arbitrage agents.",
   "tags": [
    "arbitrage",
    "dex",
    "cex",
    "spread",
    "trading"
   ],
   "examples": [
    "Use DEX-CEX Arbitrage Spread for arbitrage.",
    "Call /crypto/dex-cex-spread and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/crypto/dex-cex-spread",
    "queryParams": {
     "symbol": {
      "type": "string",
      "description": "Coin ticker, e.g. 'ETH', 'WBTC', 'ARB'",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "DexScreener (DEX) + Binance/Bybit spot (CEX)"
  },
  {
   "id": "web-extract",
   "name": "Web Search & Extract",
   "description": "Web search and webpage extraction for AI agents — returns clean, LLM-ready markdown (deduplicated, with source URLs), not raw HTML. Give 'query' to search the web or 'url' to scrape and extract a page into markdown ready to drop into a prompt. Powered by Jina Reader.",
   "tags": [
    "web-search",
    "scrape",
    "extract",
    "markdown",
    "llm"
   ],
   "examples": [
    "Use Web Search & Extract for web-search.",
    "Call /web/extract and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/web/extract",
    "queryParams": {
     "query": {
      "type": "string",
      "description": "Web search query",
      "required": false
     },
     "url": {
      "type": "string",
      "description": "If set, scrape and extract this page as clean markdown instead of searching",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max search results [1-10]",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "Jina AI Reader (r.jina.ai) + Search (s.jina.ai)"
  },
  {
   "id": "new-pairs",
   "name": "New DEX Pairs Radar",
   "description": "Newly launched DEX pairs and pools per chain (GeckoTerminal) with an instant per-pair safety check bundled in (GoPlus honeypot/tax/verified + mini score) — a sniping agent filters rugs without a second call. Returns pool, base token, price, liquidity and age. EVM safety; Solana lists pairs only.",
   "tags": [
    "new-pairs",
    "new-pools",
    "sniping",
    "dex",
    "token-safety"
   ],
   "examples": [
    "Use New DEX Pairs Radar for new-pairs.",
    "Call /crypto/new-pairs and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/crypto/new-pairs",
    "queryParams": {
     "chain": {
      "type": "string",
      "description": "base | ethereum | bsc | polygon | arbitrum | optimism | avalanche | solana",
      "required": false
     },
     "limit": {
      "type": "integer",
      "description": "Max new pairs [1-15]",
      "required": false
     },
     "safety": {
      "type": "boolean",
      "description": "Bundle a GoPlus safety check per pair (EVM only), default true",
      "required": false
     }
    }
   },
   "price": "$0.05",
   "source": "GeckoTerminal (new pools) + GoPlus Security (token safety)"
  },
  {
   "id": "x402-seller-trust",
   "name": "x402 Seller Trust Score",
   "description": "Score an x402 seller wallet BEFORE paying it: verdict TRUSTED/CAUTION/AVOID + confidence from its on-chain settlement graph on Base — settlement count, unique paying counterparties, wallet age, wash-trade and sybil signals — with a signed, offline-verifiable receipt. Vet / due-diligence an unknown x402 endpoint or merchant wallet before you pay it: is this seller a scam, a fake-volume wash-trader, or a sybil cluster? Agent counterparty risk, seller reputation and trust score for x402 / agentic payments.",
   "tags": [
    "x402-seller-trust",
    "reputation-score",
    "wash-trade",
    "sybil",
    "counterparty-risk"
   ],
   "examples": [
    "Use x402 Seller Trust Score for x402-seller-trust.",
    "Call /x402/seller-trust and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/x402/seller-trust",
    "queryParams": {
     "seller_wallet": {
      "type": "string",
      "description": "x402 seller payTo wallet (0x + 40 hex)",
      "required": true,
      "pattern": "^0x[a-fA-F0-9]{40}$"
     },
     "depth": {
      "type": "string",
      "description": "'shallow' (~200 settlements) or 'deep' (~500)",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "Base on-chain settlement graph (Blockscout) + OFAC SDN crypto list"
  },
  {
   "id": "x402-payment-firewall",
   "name": "x402 Payment Firewall",
   "description": "Pre-payment risk firewall for AI agents: validate {recipient, amount, chain} BEFORE sending an x402 payment and get ALLOW/REVIEW/BLOCK in <200ms — OFAC blocklist, sanctioned-mixer check, runaway-overspend vs expected price and anomalous-amount guard. Stop an agent from overpaying or paying a bad address; transaction risk screening and payment guardrail before send. The hosted spending guard / agent budget protection an offline SDK cannot give.",
   "tags": [
    "x402-payment-firewall",
    "spending-guard",
    "pre-payment-risk",
    "recipient-allowlist",
    "anomalous-spend"
   ],
   "examples": [
    "Use x402 Payment Firewall for x402-payment-firewall.",
    "Call /x402/payment-firewall and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/x402/payment-firewall",
    "queryParams": {
     "to_address": {
      "type": "string",
      "description": "Recipient/payTo address (EVM 0x.., Solana, BTC, TRON, XRP)",
      "required": true
     },
     "amount": {
      "type": "number",
      "description": "Payment amount in USD, e.g. 0.01",
      "required": false
     },
     "chain": {
      "type": "string",
      "description": "base | ethereum | solana | bitcoin | tron (optional; inferred from address)",
      "required": false
     },
     "expected_price": {
      "type": "number",
      "description": "Price the resource advertised — flags runaway overspend",
      "required": false
     }
    }
   },
   "price": "$0.005",
   "source": "OFAC SDN crypto blocklist (0xB10C mirror) + chain validation + spend baseline"
  },
  {
   "id": "compliance-wallet-screen",
   "name": "Wallet Sanctions Screen",
   "description": "Crypto wallet sanctions & compliance screening (AML/KYT): screen any EVM/Solana/Bitcoin/Tron/XRP wallet against the official OFAC SDN crypto list (UN/UK declared) with mixer (Tornado Cash) exposure and wallet age, returning PASS/WARN/BLOCK and a cryptographically SIGNED compliance receipt (list-version-pinned, verifiable offline) for audit. Is this address sanctioned, blacklisted or mixer-linked? OFAC wallet check, travel-rule / KYT counterparty screening with an auditable attestation an agent can keep.",
   "tags": [
    "crypto-sanctions-screening",
    "ofac",
    "aml",
    "kyt",
    "compliance-receipt"
   ],
   "examples": [
    "Use Wallet Sanctions Screen for compliance-wallet-screen.",
    "Call /compliance/wallet-screen and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/compliance/wallet-screen",
    "queryParams": {
     "wallet": {
      "type": "string",
      "description": "Wallet to screen — EVM '0x..', Solana, BTC, TRON 'T..', XRP 'r..'",
      "required": true
     },
     "chains": {
      "type": "string",
      "description": "Optional comma-separated EVM chains for exposure/age, e.g. 'ethereum,base'",
      "required": false
     }
    }
   },
   "price": "$0.005",
   "source": "Official OFAC SDN crypto list + Tornado Cash mixer labels + Blockscout"
  },
  {
   "id": "macro-snapshot",
   "name": "Macro Economic Snapshot",
   "description": "Macro economic snapshot API — dated Eurozone economic indicators for trading/research agents: euro-area / Eurozone inflation (HICP / CPI), ECB policy interest rates (deposit, refi), unemployment and EUR FX from the official European Central Bank data portal — each indicator with value, as_of date, next_release cadence and a signed dated snapshot receipt for reproducible backtests. The interest-rate, inflation and currency context an agent needs before trading. Central bank / economic indicators data API.",
   "tags": [
    "macro-data",
    "ecb",
    "inflation",
    "interest-rate",
    "economic-indicators"
   ],
   "examples": [
    "Use Macro Economic Snapshot for macro-snapshot.",
    "Call /macro/snapshot and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/macro/snapshot",
    "queryParams": {
     "indicators": {
      "type": "string",
      "description": "Comma-separated: inflation_hicp, core_inflation, unemployment, deposit_facility_rate, main_refi_rate, marginal_lending_rate, fx_usd, fx_gbp, fx_jpy, fx_chf",
      "required": false
     },
     "area": {
      "type": "string",
      "description": "HICP reference area: 'U2' (euro area, default) or a country code e.g. 'FR','DE'",
      "required": false
     }
    }
   },
   "price": "$0.005",
   "source": "European Central Bank — Data Portal SDMX 2.1 (data-api.ecb.europa.eu)"
  },
  {
   "id": "solana-token-safety",
   "name": "Solana Token Safety Pro",
   "description": "Solana SPL token safety, rug check and honeypot / scam detection before trading: is this Solana token a rug pull, honeypot or scam? Verdict SAFE/RISKY/CRITICAL + 0-100 score combining STATIC checks (mint/freeze authority, holder concentration) AND BEHAVIORAL analysis (liquidity adequacy, churn, recent dump, tx velocity) plus a blue-chip false-positive guard so USDC/USDT/SOL are never flagged as rugs. Pre-trade SPL token security / scam-token detection that catches behavioral rugs static checkers miss.",
   "tags": [
    "solana-token-safety",
    "rug-check",
    "honeypot",
    "behavioral-analysis",
    "spl-token-risk"
   ],
   "examples": [
    "Use Solana Token Safety Pro for solana-token-safety.",
    "Call /solana/token-safety and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/solana/token-safety",
    "queryParams": {
     "mint": {
      "type": "string",
      "description": "SPL token mint address (base58), e.g. 'EPjFW...Dt1v' (USDC)",
      "required": true
     },
     "deep": {
      "type": "boolean",
      "description": "Deeper behavioral + holder analysis (more RPC calls)",
      "required": false
     }
    }
   },
   "price": "$0.01",
   "source": "Solana RPC (public) + DexScreener"
  },
  {
   "id": "solana-pre-trade",
   "name": "Solana Pre-Trade Bundle",
   "description": "All-in-one Solana pre-trade decision in ONE call: BUY-SAFE/CAUTION/AVOID fusing four scored modules — token security, EXECUTABLE liquidity depth (estimated slippage at $100/$1k/$10k), deployer history/control and holder concentration. Should I buy or avoid this Solana token? Full token due-diligence in one call — replaces 3-4 lookups; built for a trading / sniping agent's risk-review pipeline. Solana trading safety decision and buy/avoid verdict.",
   "tags": [
    "solana-pre-trade",
    "trading-decision",
    "liquidity-depth",
    "deployer-history",
    "all-in-one"
   ],
   "examples": [
    "Use Solana Pre-Trade Bundle for solana-pre-trade.",
    "Call /solana/pre-trade and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/solana/pre-trade",
    "queryParams": {
     "mint": {
      "type": "string",
      "description": "SPL token mint address (base58) to evaluate before buying",
      "required": true
     }
    }
   },
   "price": "$0.05",
   "source": "Solana RPC (public) + DexScreener"
  },
  {
   "id": "crypto-signal-fusion",
   "name": "Cross-Exchange Signal Fusion",
   "description": "Crypto trading signal (long/short) and market-regime signal in ONE call: LONG/SHORT/NEUTRAL with confidence, fusing the cross-exchange funding rate, crowding (long/short) bias, trend/chop market regime and BTC→altcoin lead-lag from Binance/Bybit/OKX/Hyperliquid — with declared data freshness. Should I go long or short on this coin? A fused directional trading signal where competitors sell the funding rate, regime and the four numbers separately. Derivatives trading signal for any altcoin.",
   "tags": [
    "crypto-trading-signal",
    "funding-rate",
    "market-regime",
    "lead-lag",
    "signal-fusion"
   ],
   "examples": [
    "Use Cross-Exchange Signal Fusion for crypto-signal-fusion.",
    "Call /crypto/signal-fusion and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/crypto/signal-fusion",
    "queryParams": {
     "symbol": {
      "type": "string",
      "description": "Coin ticker, e.g. 'BTC','ETH','SOL'",
      "required": false
     },
     "timeframe": {
      "type": "string",
      "description": "Regime/lead-lag timeframe: 5m | 15m | 1h | 4h (default 1h)",
      "required": false
     }
    }
   },
   "price": "$0.02",
   "source": "Binance + Bybit + OKX + Hyperliquid (perp + klines)"
  },
  {
   "id": "agent-due-diligence",
   "name": "Agent Due Diligence",
   "description": "Vet any company, crypto project, counterparty or domain before engaging: one call composes a risk DOSSIER — synthesis + detected signals + sources + 0-100 risk score + GO/CAUTION/STOP verdict + recommendation + a signed, offline-verifiable receipt. Is this entity a scam, fraud, sanctioned, or safe to deal with? Replaces 3-4 manual web searches plus the synthesis an agent would have to do itself, composed from live public web signals. Counterparty / vendor / project due-diligence for agents.",
   "tags": [
    "due-diligence",
    "kyb",
    "counterparty-risk",
    "risk-dossier",
    "agent-decision"
   ],
   "examples": [
    "Use Agent Due Diligence for agent-due-diligence.",
    "Call /agent/due-diligence and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/agent/due-diligence",
    "queryParams": {
     "target": {
      "type": "string",
      "description": "Entity / project / counterparty / domain to vet, e.g. 'Acme DeFi Labs'",
      "required": true
     },
     "target_type": {
      "type": "string",
      "description": "Optional: entity | project | counterparty | domain | wallet",
      "required": false
     },
     "context": {
      "type": "string",
      "description": "Optional: why you're engaging / what you're about to do",
      "required": false
     }
    }
   },
   "price": "$0.50",
   "source": "Public web signals (Jina Reader, keyless) + Claude Haiku synthesis"
  },
  {
   "id": "agent-analysis-report",
   "name": "Agent Analysis Report",
   "description": "Structured analysis report on any URL, company, product or subject in one call: positioning + strengths + risks + opportunities + 0-100 actionable score + STRONG/MODERATE/WEAK rating + recommendation + provenance + a signed receipt. A fixed-schema research report an agent can consume without re-parsing, composed from live public web signals. Competitive / investment / partnership analysis for agents.",
   "tags": [
    "analysis-report",
    "market-analysis",
    "competitive",
    "research",
    "agent-decision"
   ],
   "examples": [
    "Use Agent Analysis Report for agent-analysis-report.",
    "Call /agent/analysis-report and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/agent/analysis-report",
    "queryParams": {
     "input": {
      "type": "string",
      "description": "URL, company, product or subject, e.g. 'stripe.com'",
      "required": true
     },
     "focus": {
      "type": "string",
      "description": "Optional: investment | competitive | partnership | security | general",
      "required": false
     }
    }
   },
   "price": "$0.25",
   "source": "Public web signals (Jina Reader, keyless) + Claude Haiku synthesis"
  },
  {
   "id": "agent-clearance",
   "name": "Agent Action Preflight",
   "description": "Safety preflight before an agent runs a DESTRUCTIVE, costly or IRREVERSIBLE action (delete, deploy, transfer funds, publish, overwrite): risk assessment + reversibility check + timing + CLEAR/LIMIT/REVIEW/BLOCK verdict + a cryptographically SIGNED ClearancePacket (decision, approved amount, policy version, evidence hash, expiry, rationale) the agent keeps as proof of authorization. Should I run this action, or stop and ask a human? Stops a mistake far costlier than the call price. Agent action guardrail / clearance / human-in-the-loop gate.",
   "tags": [
    "preflight",
    "action-clearance",
    "reversibility",
    "agent-safety",
    "guardrail"
   ],
   "examples": [
    "Use Agent Action Preflight for agent-clearance.",
    "Call /agent/clearance and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/agent/clearance",
    "queryParams": {
     "action": {
      "type": "string",
      "description": "Action about to run, e.g. 'delete the production users table'",
      "required": true
     },
     "action_type": {
      "type": "string",
      "description": "Optional: delete|deploy|send|spend|transfer|publish|email|overwrite|approve|rotate|shutdown|other",
      "required": false
     },
     "amount_usd": {
      "type": "number",
      "description": "Monetary stake in USD if applicable, e.g. 250",
      "required": false
     },
     "reversible": {
      "type": "boolean",
      "description": "Optional caller hint: is the action reversible?",
      "required": false
     },
     "target": {
      "type": "string",
      "description": "Optional target (table, address, repo, recipient)",
      "required": false
     },
     "context": {
      "type": "string",
      "description": "Optional extra context (environment, prior approval)",
      "required": false
     }
    }
   },
   "price": "$0.25",
   "source": "Local deterministic clearance rules engine + Ed25519 signed ClearancePacket"
  },
  {
   "id": "agent-output-qa",
   "name": "Agent Output QA",
   "description": "Review and improve an agent's outbound text (email, social post, customer reply) before sending: a multi-criteria scorecard (clarity, spam-safety, tone, length, personalization, CTA, compliance — each 0-100) + poor/fair/good/excellent rating + top suggestions + a ready-to-send IMPROVED REWRITE. Will this message land or get flagged as spam? One call scores and rewrites. Output review / spam check / copy QA for agents.",
   "tags": [
    "output-qa",
    "email-review",
    "content-scoring",
    "rewrite",
    "agent-decision"
   ],
   "examples": [
    "Use Agent Output QA for agent-output-qa.",
    "Call /agent/output-qa and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/agent/output-qa",
    "queryParams": {
     "output": {
      "type": "string",
      "description": "The agent's outbound text to review (email, post, reply)",
      "required": true
     },
     "format": {
      "type": "string",
      "description": "Optional: email | social_post | customer_reply | other",
      "required": false
     },
     "goal": {
      "type": "string",
      "description": "Optional intended goal, e.g. 'book a demo'",
      "required": false
     }
    }
   },
   "price": "$0.10",
   "source": "Claude Haiku rubric scoring + rewrite"
  },
  {
   "id": "agent-content-scan",
   "name": "Content Security Scan",
   "description": "Scan any external content before an agent INGESTS it (SKILL.md, web page, user input, tool output) for prompt-injection, data exfiltration, dangerous code execution, hidden/invisible unicode and instruction overrides: 0-100 risk score + SAFE/WARN/BLOCK verdict + structured findings with matched evidence. Is it safe to feed this content to my agent? A fast, cheap, deterministic, high-volume pre-ingest firewall. Prompt-injection / skill-audit / untrusted-content security check for agents.",
   "tags": [
    "content-scan",
    "prompt-injection",
    "exfiltration",
    "agent-security",
    "safe-ingest"
   ],
   "examples": [
    "Use Content Security Scan for agent-content-scan.",
    "Call /agent/content-scan and summarize the result."
   ],
   "inputModes": [
    "application/json"
   ],
   "outputModes": [
    "application/json"
   ],
   "endpoint": {
    "method": "GET",
    "path": "/agent/content-scan",
    "queryParams": {
     "content": {
      "type": "string",
      "description": "Raw content to scan before ingestion (SKILL.md, web page, user input, tool output)",
      "required": true
     },
     "source_type": {
      "type": "string",
      "description": "Optional: skill | webpage | user_input | tool_output | document",
      "required": false
     }
    }
   },
   "price": "$0.10",
   "source": "Local deterministic pattern engine (regex + unicode heuristics)"
  }
 ]
}