{"ok":true,"resources":[{"resource":"weather.current","description":"Current weather conditions for a lat/lon coordinate.","category":"weather","costMilliUnits":100,"cache":{"enabled":true,"ttlMs":600000},"providers":[{"id":"open-meteo","name":"Open-Meteo","cost":1,"enabled":true,"byok":false,"trust":{"successRate":0.989247311827957,"p95LatencyMs":1112,"composite":0.7059094291945058,"samples":651}},{"id":"openweathermap","name":"OpenWeatherMap","cost":1.2,"enabled":false,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"weather.forecast","description":"Hourly + daily weather forecast for a lat/lon (canonical shape).","category":"weather","costMilliUnits":200,"cache":{"enabled":true,"ttlMs":1800000},"providers":[{"id":"open-meteo-forecast","name":"Open-Meteo Forecast","cost":1,"enabled":true,"byok":false,"trust":{"successRate":0.9166666666666666,"p95LatencyMs":1660,"composite":0.6425721915640792,"samples":12}}]},{"resource":"currency.convert","description":"Convert an amount between fiat currencies.","category":"finance","costMilliUnits":50,"cache":{"enabled":true,"ttlMs":3600000},"providers":[{"id":"frankfurter","name":"Frankfurter (ECB)","cost":1,"enabled":true,"byok":false,"trust":{"successRate":1,"p95LatencyMs":361,"composite":0.9001234831286875,"samples":637}},{"id":"exchangerate-api","name":"ExchangeRate-API","cost":0.9,"enabled":true,"byok":false,"trust":{"successRate":1,"p95LatencyMs":81,"composite":0.96712487637811,"samples":641}}]},{"resource":"geo.ip","description":"Geolocation lookup for an IP address.","category":"geolocation","costMilliUnits":30,"cache":{"enabled":true,"ttlMs":86400000},"providers":[{"id":"ipwhois","name":"ipwho.is","cost":1,"enabled":true,"byok":false,"trust":{"successRate":0,"p95LatencyMs":52,"composite":0.27113533748679214,"samples":638}},{"id":"ipapi","name":"ipapi.co","cost":1.1,"enabled":true,"byok":false,"trust":{"successRate":1,"p95LatencyMs":218,"composite":0.9411297830902662,"samples":648}}]},{"resource":"rss.feed","description":"Fetch and parse a single RSS or Atom feed (canonical item shape).","category":"content","costMilliUnits":40,"cache":{"enabled":true,"ttlMs":300000},"providers":[{"id":"conduit-rss-fetcher","name":"Conduit RSS Fetcher","cost":1,"enabled":true,"byok":false,"trust":{"successRate":0.9733124018838305,"p95LatencyMs":4118,"composite":0.6813186854944273,"samples":637}}]},{"resource":"rss.aggregate","description":"Fetch and merge many feeds in parallel; deduped and sorted by date.","category":"content","costMilliUnits":200,"cache":{"enabled":true,"ttlMs":180000},"providers":[{"id":"conduit-rss-aggregator","name":"Conduit RSS Aggregator","cost":1,"enabled":true,"byok":false,"trust":{"successRate":1,"p95LatencyMs":4150,"composite":0.7000000035583359,"samples":1119}}]},{"resource":"news.search","description":"Search recent news articles across multiple providers (canonical shape).","category":"news","costMilliUnits":150,"cache":{"enabled":true,"ttlMs":300000},"providers":[{"id":"newsapi","name":"NewsAPI.org","cost":1,"enabled":false,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}},{"id":"newsdata","name":"NewsData.io","cost":0.9,"enabled":false,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}},{"id":"gnews","name":"GNews.io","cost":1.1,"enabled":false,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"web.search","description":"Web search with normalized result schema across providers.","category":"search","costMilliUnits":200,"cache":{"enabled":true,"ttlMs":600000},"providers":[{"id":"brave-search","name":"Brave Search","cost":1,"enabled":false,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}},{"id":"duckduckgo-ia","name":"DuckDuckGo Instant Answer","cost":0.5,"enabled":true,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"ai.complete","description":"Chat-style LLM completion (BYOK to OpenAI or Anthropic).","category":"ai","costMilliUnits":10,"cache":{"enabled":false,"ttlMs":0},"providers":[{"id":"openai","name":"OpenAI (BYOK)","cost":1,"enabled":true,"byok":true,"trust":{"successRate":1,"p95LatencyMs":0,"composite":0.9772425459936269,"samples":4}},{"id":"anthropic","name":"Anthropic (BYOK)","cost":1,"enabled":true,"byok":true,"trust":{"successRate":0,"p95LatencyMs":0,"composite":0.27724254599362697,"samples":1}}]},{"resource":"web.fetch","description":"Raw HTTP fetch with redirect tracking and a 5MB byte cap.","category":"scraping","costMilliUnits":50,"cache":{"enabled":false,"ttlMs":0},"providers":[{"id":"conduit-web-fetch","name":"Conduit Web Fetch","cost":1,"enabled":true,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"web.extract","description":"Auto-extract a page's structured signals: title, OG/Twitter, JSON-LD, microdata, article body, links, images. Optional CSS-selector overlay.","category":"scraping","costMilliUnits":100,"cache":{"enabled":true,"ttlMs":1800000},"providers":[{"id":"conduit-web-extract","name":"Conduit Web Extract","cost":1,"enabled":true,"byok":false,"trust":{"successRate":0.5430525334162263,"p95LatencyMs":8246,"composite":0.3801367733913584,"samples":3217}}]},{"resource":"web.extract-schema","description":"Schema-driven page extraction. Provide a JSON Schema; an LLM (BYOK) fills it from the page.","category":"scraping","costMilliUnits":250,"cache":{"enabled":true,"ttlMs":900000},"providers":[{"id":"conduit-schema-extract","name":"Conduit Schema Extractor","cost":1,"enabled":true,"byok":true,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"web.render","description":"Render a URL in a real headless browser (Camoufox stealth or Playwright). Requires a bridge process; see bridges/.","category":"scraping","costMilliUnits":500,"cache":{"enabled":true,"ttlMs":300000},"providers":[{"id":"camoufox","name":"Camoufox (stealth Firefox)","cost":1.5,"enabled":true,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}},{"id":"playwright","name":"Playwright Chromium","cost":1,"enabled":false,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"knowledge.wikipedia","description":"Search Wikipedia and return the top-result summary in canonical shape.","category":"knowledge","costMilliUnits":30,"cache":{"enabled":true,"ttlMs":86400000},"providers":[{"id":"wikipedia","name":"Wikipedia","cost":1,"enabled":true,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"knowledge.translate","description":"Translate text between languages.","category":"knowledge","costMilliUnits":60,"cache":{"enabled":true,"ttlMs":86400000},"providers":[{"id":"mymemory","name":"MyMemory","cost":1,"enabled":true,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}},{"id":"libretranslate","name":"LibreTranslate","cost":0.9,"enabled":false,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"crypto.price","description":"Spot price of a crypto asset against a fiat currency.","category":"finance","costMilliUnits":50,"cache":{"enabled":true,"ttlMs":60000},"providers":[{"id":"coingecko","name":"CoinGecko","cost":1,"enabled":true,"byok":false,"trust":{"successRate":0.6435643564356436,"p95LatencyMs":1110,"composite":0.4640602915499367,"samples":101}},{"id":"coinpaprika","name":"CoinPaprika","cost":1.1,"enabled":true,"byok":false,"trust":{"successRate":1,"p95LatencyMs":4103,"composite":0.7000000045009703,"samples":87}}]},{"resource":"time.now","description":"Current time + offset for a named IANA timezone.","category":"time","costMilliUnits":10,"cache":{"enabled":true,"ttlMs":30000},"providers":[{"id":"timeapi","name":"timeapi.io","cost":1,"enabled":true,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}},{"id":"worldtimeapi","name":"worldtimeapi.org","cost":1,"enabled":true,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"time.holidays","description":"Public holidays for a country and year (ISO 3166-1 alpha-2).","category":"time","costMilliUnits":20,"cache":{"enabled":true,"ttlMs":86400000},"providers":[{"id":"nager","name":"Nager.Date","cost":1,"enabled":true,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]},{"resource":"geo.air-quality","description":"Current air quality (US and European AQI plus pollutant concentrations).","category":"geolocation","costMilliUnits":30,"cache":{"enabled":true,"ttlMs":1800000},"providers":[{"id":"open-meteo-aq","name":"Open-Meteo Air Quality","cost":1,"enabled":true,"byok":false,"trust":{"successRate":1,"p95LatencyMs":784,"composite":0.7583984750774734,"samples":11}}]},{"resource":"geo.earthquakes","description":"Recent earthquake events from USGS.","category":"science","costMilliUnits":20,"cache":{"enabled":true,"ttlMs":300000},"providers":[{"id":"usgs","name":"USGS Earthquakes","cost":1,"enabled":true,"byok":false,"trust":{"successRate":1,"p95LatencyMs":62,"composite":0.9698043719307679,"samples":18}}]},{"resource":"gif.search","description":"Search a public GIF library (Giphy or Tenor) for short reactions to drop into comments.","category":"social","costMilliUnits":50,"cache":{"enabled":true,"ttlMs":1800000},"providers":[{"id":"giphy","name":"Giphy","cost":1,"enabled":true,"byok":false,"trust":{"successRate":1,"p95LatencyMs":148,"composite":0.9559628980595852,"samples":5}},{"id":"tenor","name":"Tenor (Google)","cost":1,"enabled":false,"byok":false,"trust":{"successRate":null,"p95LatencyMs":0,"composite":0.6272425459936269,"samples":0}}]}]}