diff --git a/public/icons/surf-reddit.svg b/public/icons/surf-reddit.svg
new file mode 100644
index 00000000..cc0f3225
--- /dev/null
+++ b/public/icons/surf-reddit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/surf-twitter.svg b/public/icons/surf-twitter.svg
new file mode 100644
index 00000000..cc0f3225
--- /dev/null
+++ b/public/icons/surf-twitter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/surf-web.svg b/public/icons/surf-web.svg
new file mode 100644
index 00000000..cc0f3225
--- /dev/null
+++ b/public/icons/surf-web.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/services/llms.txt b/public/services/llms.txt
index 901fbe11..bc21ae57 100644
--- a/public/services/llms.txt
+++ b/public/services/llms.txt
@@ -31,5 +31,5 @@ Returns JSON with all services, endpoints, and pricing.
## Services
```json
-[{"id":"agentmail","name":"AgentMail","serviceUrl":"https://mpp.api.agentmail.to","description":"Email inboxes for AI agents.","categories":["ai","social"]},{"id":"allium","name":"Allium","serviceUrl":"https://agents.allium.so","description":"System of record for onchain finance. Real-time blockchain data: token prices, wallet balances, transactions, PnL, and SQL explorer.","categories":["blockchain","data"]},{"id":"anthropic","name":"Anthropic","serviceUrl":"https://anthropic.mpp.tempo.xyz","description":"Claude chat completions (Sonnet, Opus, Haiku) via native and OpenAI-compatible APIs.","categories":["ai"]},{"id":"browserbase","name":"Browserbase","serviceUrl":"https://mpp.browserbase.com","description":"Headless browser sessions, web search, and page fetching for AI agents.","categories":["web","compute","search"]},{"id":"codex","name":"Codex","serviceUrl":"https://graph.codex.io","description":"Comprehensive onchain data API for tokens and prediction markets. Real-time prices, charts, trades, and wallet analytics across 80+ networks via GraphQL.","categories":["blockchain","data"]},{"id":"dune","name":"Dune","serviceUrl":"https://api.dune.com","description":"Execute SQL queries on Dune and retrieve results or CSV exports from completed executions.","categories":["data","blockchain"]},{"id":"exa","name":"Exa","serviceUrl":"https://exa.mpp.tempo.xyz","description":"AI-powered web search, content retrieval, and answers.","categories":["search","ai"]},{"id":"fal","name":"fal.ai","serviceUrl":"https://fal.mpp.tempo.xyz","description":"Image, video, and audio generation with 600+ models (Flux, SD, Recraft, Grok).","categories":["ai","media"]},{"id":"firecrawl","name":"Firecrawl","serviceUrl":"https://firecrawl.mpp.tempo.xyz","description":"Web scraping, crawling, and structured data extraction for LLMs.","categories":["web","data"]},{"id":"gemini","name":"Google Gemini","serviceUrl":"https://gemini.mpp.tempo.xyz","description":"Gemini text generation, Veo video, and Nano Banana image generation with model-tier pricing.","categories":["ai","media"]},{"id":"modal","name":"Modal","serviceUrl":"https://modal.mpp.tempo.xyz","description":"Serverless GPU compute for sandboxed code execution and AI/ML workloads.","categories":["compute"]},{"id":"openai","name":"OpenAI","serviceUrl":"https://openai.mpp.tempo.xyz","description":"Chat completions, embeddings, image generation, and audio with model-tier pricing.","categories":["ai","media"]},{"id":"openrouter","name":"OpenRouter","serviceUrl":"https://openrouter.mpp.tempo.xyz","description":"Unified API for 100+ LLMs with live per-model pricing.","categories":["ai"]},{"id":"parallel","name":"Parallel","serviceUrl":"https://parallelmpp.dev","description":"Web search, page extraction, and multi-hop web research.","categories":["search","ai"]},{"id":"alchemy","name":"Alchemy","serviceUrl":"https://mpp.alchemy.com","description":"Blockchain data APIs including Core RPC APIs, Prices API, Portfolio API, and NFT API across 100+ chains.","categories":["blockchain","data"]},{"id":"rpc","name":"Tempo RPC","serviceUrl":"https://rpc.mpp.tempo.xyz","description":"Tempo blockchain JSON-RPC access (mainnet and testnet).","categories":["blockchain"]},{"id":"storage","name":"Object Storage","serviceUrl":"https://storage.mpp.tempo.xyz","description":"S3/R2-compatible object storage with dynamic per-size pricing.","categories":["storage"]},{"id":"stableemail","name":"StableEmail","serviceUrl":"https://stableemail.dev","description":"Pay-per-send email delivery, forwarding inboxes, and custom subdomains — no API keys or accounts.","categories":["social"]},{"id":"stableenrich","name":"StableEnrich","serviceUrl":"https://stableenrich.dev","description":"Pay-per-request research APIs — people, companies, web search, scraping, places, social media, and contact enrichment.","categories":["data","search","social"]},{"id":"stabletravel","name":"StableTravel","serviceUrl":"https://stabletravel.dev","description":"Pay-per-request travel APIs — flights, hotels, activities, transfers, and real-time flight tracking. Powered by Amadeus and FlightAware.","categories":["data","web"]},{"id":"stablephone","name":"StablePhone","serviceUrl":"https://stablephone.dev","description":"AI phone calls, dedicated phone numbers, and iMessage/FaceTime lookup — pay per request.","categories":["ai","social"]},{"id":"stablesocial","name":"StableSocial","serviceUrl":"https://stablesocial.dev","description":"Pay-per-request social media data from TikTok, Instagram, Facebook, and Reddit.","categories":["social","data"]},{"id":"stablestudio","name":"StableStudio","serviceUrl":"https://stablestudio.dev","description":"Pay-per-generation AI image and video creation — Nano Banana, GPT Image, Grok, Flux, Sora, Veo, Seedance, and Wan.","categories":["ai","media"]},{"id":"stableupload","name":"StableUpload","serviceUrl":"https://stableupload.dev","description":"Pay-per-upload file hosting and static site hosting with custom domains — 6 month TTL.","categories":["storage"]},{"id":"aviationstack","name":"AviationStack","serviceUrl":"https://aviationstack.mpp.tempo.xyz","description":"Real-time and historical flight tracking, airports, airlines, and schedules.","categories":["data"]},{"id":"codestorage","name":"Code Storage","serviceUrl":"https://codestorage.mpp.tempo.xyz","description":"Paid Git repository creation — create repos and get authenticated clone URLs.","categories":["storage"]},{"id":"flightapi","name":"FlightAPI","serviceUrl":"https://flightapi.mpp.tempo.xyz","description":"Real-time flight prices, tracking, and airport schedules from 700+ airlines.","categories":["data"]},{"id":"goflightlabs","name":"GoFlightLabs","serviceUrl":"https://goflightlabs.mpp.tempo.xyz","description":"Real-time flight tracking, prices, schedules, and airline data.","categories":["data"]},{"id":"oxylabs","name":"Oxylabs","serviceUrl":"https://oxylabs.mpp.tempo.xyz","description":"Web scraping API with geo-targeting by country, state, and city. Fetch any public URL with JavaScript rendering support.","categories":["web","data"]},{"id":"spyfu","name":"SpyFu","serviceUrl":"https://spyfu.mpp.tempo.xyz","description":"Competitor keyword research — SEO rankings, PPC ads, ad history, and domain analytics. 18+ years of historical data.","categories":["data","search"]},{"id":"serpapi","name":"SerpApi","serviceUrl":"https://serpapi.mpp.tempo.xyz","description":"Google Flights search — real-time prices, schedules, and booking options.","categories":["search","data"]},{"id":"googlemaps","name":"Google Maps","serviceUrl":"https://googlemaps.mpp.tempo.xyz","description":"Google Maps Platform — geocoding, directions, places, routes, tiles, weather, air quality, and more.","categories":["data"]},{"id":"kicksdb","name":"KicksDB","serviceUrl":"https://kicksdb.mpp.tempo.xyz","description":"Sneaker & streetwear market data — prices, sales history, and availability from StockX, GOAT, and more.","categories":["data"]},{"id":"twocaptcha","name":"2Captcha","serviceUrl":"https://twocaptcha.mpp.tempo.xyz","description":"CAPTCHA solving API — reCAPTCHA, Turnstile, hCaptcha, image captchas, and more.","categories":["web"]},{"id":"postalform","name":"PostalForm","serviceUrl":"https://postalform.com","description":"Print and mail real letters and documents via AI agents.","categories":["web"]},{"id":"prospect-butcher","name":"Prospect Butcher","serviceUrl":"https://agents.prospectbutcher.shop","description":"Order sandwiches for pickup in Brooklyn — the first food purchase made entirely by an AI agent.","categories":["web"]},{"id":"alphavantage","name":"Alpha Vantage","serviceUrl":"https://alphavantage.mpp.paywithlocus.com","description":"Financial market data — stock prices, forex, crypto, commodities, economic indicators, technical analysis, and news sentiment.","categories":["data"]},{"id":"apollo","name":"Apollo","serviceUrl":"https://apollo.mpp.paywithlocus.com","description":"People and company enrichment, lead search, and sales intelligence with 275M+ contacts.","categories":["data"]},{"id":"billboard","name":"Billboard","serviceUrl":"https://billboard.mpp.paywithlocus.com","description":"Post to @MPPBillboard on X. Price starts at $0.01 and doubles with every post. The ultimate AI agent billboard.","categories":["data"]},{"id":"brave","name":"Brave Search","serviceUrl":"https://brave.mpp.paywithlocus.com","description":"Independent web search — web, news, images, videos, AI answers, and LLM context. Privacy-first search from a large independent index.","categories":["search"]},{"id":"builtwith","name":"BuiltWith","serviceUrl":"https://builtwith.mpp.paywithlocus.com","description":"Technology profiling for websites — detect tech stacks, find sites using specific technologies, discover domain relationships, trends, and competitive intelligence across 100M+ websites.","categories":["data"]},{"id":"clado","name":"Clado","serviceUrl":"https://clado.mpp.paywithlocus.com","description":"People search, LinkedIn enrichment, and deep research for lead generation.","categories":["data"]},{"id":"coingecko","name":"CoinGecko","serviceUrl":"https://coingecko.mpp.paywithlocus.com","description":"Cryptocurrency market data — prices, charts, market cap, exchanges, trending coins, global stats, NFTs, derivatives, and on-chain data.","categories":["data"]},{"id":"abstract-company-enrichment","name":"Company Enrichment","serviceUrl":"https://abstract-company-enrichment.mpp.paywithlocus.com","description":"Enrich company data from a domain name.","categories":["data"]},{"id":"deepgram","name":"Deepgram","serviceUrl":"https://deepgram.mpp.paywithlocus.com","description":"Industry-leading speech AI — transcribe audio from URLs with Nova-3, generate natural speech with Aura-2 TTS, and analyze text for sentiment, topics, intents, and summaries.","categories":["data"]},{"id":"deepl","name":"DeepL","serviceUrl":"https://deepl.mpp.paywithlocus.com","description":"Professional translation and text improvement — translate text between 30+ languages with industry-leading quality, or improve and rephrase text with DeepL Write.","categories":["data"]},{"id":"deepseek","name":"DeepSeek","serviceUrl":"https://deepseek.mpp.paywithlocus.com","description":"Frontier AI models — DeepSeek-V3 for fast chat and code, DeepSeek-R1 for deep chain-of-thought reasoning. OpenAI-compatible API format. Among the most capable and cost-efficient models available.","categories":["ai"]},{"id":"diffbot","name":"Diffbot","serviceUrl":"https://diffbot.mpp.paywithlocus.com","description":"Web data extraction — articles, products, discussions, images, videos, and auto-detect.","categories":["web","data"]},{"id":"diffbot-kg","name":"Diffbot KG","serviceUrl":"https://diffbot-kg.mpp.paywithlocus.com","description":"Knowledge Graph — search 10B+ entities and enrich company/person records.","categories":["data"]},{"id":"diffbot-nl","name":"Diffbot NL","serviceUrl":"https://diffbot-nl.mpp.paywithlocus.com","description":"Natural language processing — NER, sentiment, facts, summarization.","categories":["ai"]},{"id":"edgar","name":"EDGAR (SEC)","serviceUrl":"https://edgar.mpp.paywithlocus.com","description":"SEC EDGAR public financial data — company filing history, XBRL financial facts (income statements, balance sheets, cash flows), and full-text search across all public filings. No API key required.","categories":["data"]},{"id":"edgar-search","name":"EDGAR Full-Text Search","serviceUrl":"https://edgar-search.mpp.paywithlocus.com","description":"Full-text search across all SEC filings — 10-Ks, 10-Qs, 8-Ks, proxy statements, and more. Search by keyword, company name, form type, and date range.","categories":["data"]},{"id":"abstract-email-reputation","name":"Email Reputation","serviceUrl":"https://abstract-email-reputation.mpp.paywithlocus.com","description":"Check the reputation and risk score of an email address.","categories":["data"]},{"id":"abstract-exchange-rates","name":"Exchange Rates","serviceUrl":"https://abstract-exchange-rates.mpp.paywithlocus.com","description":"Live, historical, and conversion exchange rates for 150+ currencies.","categories":["data"]},{"id":"grok","name":"Grok","serviceUrl":"https://grok.mpp.paywithlocus.com","description":"xAI models — chat, web/X search, code execution, image generation/editing, and text-to-speech.","categories":["ai"]},{"id":"groq","name":"Groq","serviceUrl":"https://groq.mpp.paywithlocus.com","description":"Ultra-fast LLM inference — Llama 3.3, DeepSeek R1, Gemma 2, GPT-OSS, Qwen, Whisper, and PlayAI TTS. OpenAI-compatible API with industry-leading speed.","categories":["ai"]},{"id":"abstract-holidays","name":"Holidays","serviceUrl":"https://abstract-holidays.mpp.paywithlocus.com","description":"Public holiday data for 200+ countries.","categories":["data"]},{"id":"hunter","name":"Hunter","serviceUrl":"https://hunter.mpp.paywithlocus.com","description":"Email finding, verification, and company enrichment for outreach and lead generation.","categories":["data"]},{"id":"abstract-iban-validation","name":"IBAN Validation","serviceUrl":"https://abstract-iban-validation.mpp.paywithlocus.com","description":"Validate International Bank Account Numbers (IBANs).","categories":["data"]},{"id":"abstract-ip-intelligence","name":"IP Intelligence","serviceUrl":"https://abstract-ip-intelligence.mpp.paywithlocus.com","description":"Detect VPNs, proxies, bots, and Tor nodes by IP address.","categories":["data"]},{"id":"ipinfo","name":"IPinfo","serviceUrl":"https://ipinfo.mpp.paywithlocus.com","description":"IP intelligence — geolocation, ASN, privacy detection, carrier data, and hosting identification.","categories":["data"]},{"id":"judge0","name":"Judge0","serviceUrl":"https://judge0.mpp.paywithlocus.com","description":"Online code execution — run source code in 60+ programming languages with sandboxed isolation.","categories":["compute"]},{"id":"mapbox","name":"Mapbox","serviceUrl":"https://mapbox.mpp.paywithlocus.com","description":"Location and mapping APIs — geocoding, directions, isochrones, matrix routing, map matching, static maps, and spatial queries.","categories":["data"]},{"id":"mathpix","name":"Mathpix","serviceUrl":"https://mathpix.mpp.paywithlocus.com","description":"OCR for math, science, and documents — extract LaTeX, MathML, and Mathpix Markdown from images and handwriting.","categories":["ai"]},{"id":"mistral","name":"Mistral AI","serviceUrl":"https://mistral.mpp.paywithlocus.com","description":"Premier and open-source LLMs — Mistral Large, Medium, Small, Codestral, Magistral reasoning, Pixtral vision, text embeddings, and content moderation.","categories":["ai"]},{"id":"openweather","name":"OpenWeather","serviceUrl":"https://openweather.mpp.paywithlocus.com","description":"Global weather data — current conditions, 5-day forecasts, hourly forecasts, air quality index with pollutants, geocoding, and One Call 3.0 with full weather suite and government alerts.","categories":["data"]},{"id":"perplexity","name":"Perplexity","serviceUrl":"https://perplexity.mpp.paywithlocus.com","description":"AI-powered search — Sonar chat with real-time web grounding, web search, and embeddings.","categories":["ai","search"]},{"id":"abstract-phone-intelligence","name":"Phone Intelligence","serviceUrl":"https://abstract-phone-intelligence.mpp.paywithlocus.com","description":"Validate and get carrier info for phone numbers worldwide.","categories":["data"]},{"id":"rentcast","name":"RentCast","serviceUrl":"https://rentcast.mpp.paywithlocus.com","description":"US real estate intelligence — property records, AVM valuations, rent estimates, sale/rental listings, and market statistics.","categories":["data"]},{"id":"replicate","name":"Replicate","serviceUrl":"https://replicate.mpp.paywithlocus.com","description":"Run thousands of open-source AI models via API — image generation, language models, speech recognition, video, and more. Pay only for what you use.","categories":["ai","media"]},{"id":"screenshotone","name":"ScreenshotOne","serviceUrl":"https://screenshotone.mpp.paywithlocus.com","description":"Website screenshot API — capture any URL, HTML, or markdown as PNG, JPEG, WebP, or PDF. Full-page, element selection, dark mode, ad blocking, and more.","categories":["compute"]},{"id":"stability-ai","name":"Stability AI","serviceUrl":"https://stability-ai.mpp.paywithlocus.com","description":"Generative AI platform for images, 3D models, and audio — text-to-image, editing, upscaling, and more.","categories":["ai","media"]},{"id":"suno","name":"Suno","serviceUrl":"https://suno.mpp.paywithlocus.com","description":"AI music generation — create full songs, generate lyrics, and build custom music tracks with state-of-the-art AI models. Supports custom styles, vocals, and instrumental modes.","categories":["ai","media"]},{"id":"tavily","name":"Tavily","serviceUrl":"https://tavily.mpp.paywithlocus.com","description":"AI-optimized web search, content extraction, site mapping, and crawling API.","categories":["search","web"]},{"id":"abstract-timezone","name":"Timezone","serviceUrl":"https://abstract-timezone.mpp.paywithlocus.com","description":"Current time and timezone conversion for any location.","categories":["data"]},{"id":"abstract-vat","name":"VAT","serviceUrl":"https://abstract-vat.mpp.paywithlocus.com","description":"VAT number validation, rate calculation, and category lookup for EU.","categories":["data"]},{"id":"abstract-web-scraping","name":"Web Scraping","serviceUrl":"https://abstract-web-scraping.mpp.paywithlocus.com","description":"Scrape web pages with optional JavaScript rendering.","categories":["web","data"]},{"id":"wolframalpha","name":"Wolfram|Alpha","serviceUrl":"https://wolframalpha.mpp.paywithlocus.com","description":"Computational knowledge engine — math, science, geography, history, nutrition, finance, and more. Get answers as text, spoken audio, LLM-optimized data, or full structured results.","categories":["data"]},{"id":"stripe-climate","name":"Stripe Climate","serviceUrl":"https://climate.stripe.dev","description":"Fund permanent carbon removal projects via Stripe Climate.","categories":["web"]}]
+[{"id":"agentmail","name":"AgentMail","serviceUrl":"https://mpp.api.agentmail.to","description":"Email inboxes for AI agents.","categories":["ai","social"]},{"id":"allium","name":"Allium","serviceUrl":"https://agents.allium.so","description":"System of record for onchain finance. Real-time blockchain data: token prices, wallet balances, transactions, PnL, and SQL explorer.","categories":["blockchain","data"]},{"id":"anthropic","name":"Anthropic","serviceUrl":"https://anthropic.mpp.tempo.xyz","description":"Claude chat completions (Sonnet, Opus, Haiku) via native and OpenAI-compatible APIs.","categories":["ai"]},{"id":"browserbase","name":"Browserbase","serviceUrl":"https://mpp.browserbase.com","description":"Headless browser sessions, web search, and page fetching for AI agents.","categories":["web","compute","search"]},{"id":"codex","name":"Codex","serviceUrl":"https://graph.codex.io","description":"Comprehensive onchain data API for tokens and prediction markets. Real-time prices, charts, trades, and wallet analytics across 80+ networks via GraphQL.","categories":["blockchain","data"]},{"id":"dune","name":"Dune","serviceUrl":"https://api.dune.com","description":"Execute SQL queries on Dune and retrieve results or CSV exports from completed executions.","categories":["data","blockchain"]},{"id":"exa","name":"Exa","serviceUrl":"https://exa.mpp.tempo.xyz","description":"AI-powered web search, content retrieval, and answers.","categories":["search","ai"]},{"id":"fal","name":"fal.ai","serviceUrl":"https://fal.mpp.tempo.xyz","description":"Image, video, and audio generation with 600+ models (Flux, SD, Recraft, Grok).","categories":["ai","media"]},{"id":"firecrawl","name":"Firecrawl","serviceUrl":"https://firecrawl.mpp.tempo.xyz","description":"Web scraping, crawling, and structured data extraction for LLMs.","categories":["web","data"]},{"id":"gemini","name":"Google Gemini","serviceUrl":"https://gemini.mpp.tempo.xyz","description":"Gemini text generation, Veo video, and Nano Banana image generation with model-tier pricing.","categories":["ai","media"]},{"id":"modal","name":"Modal","serviceUrl":"https://modal.mpp.tempo.xyz","description":"Serverless GPU compute for sandboxed code execution and AI/ML workloads.","categories":["compute"]},{"id":"openai","name":"OpenAI","serviceUrl":"https://openai.mpp.tempo.xyz","description":"Chat completions, embeddings, image generation, and audio with model-tier pricing.","categories":["ai","media"]},{"id":"openrouter","name":"OpenRouter","serviceUrl":"https://openrouter.mpp.tempo.xyz","description":"Unified API for 100+ LLMs with live per-model pricing.","categories":["ai"]},{"id":"parallel","name":"Parallel","serviceUrl":"https://parallelmpp.dev","description":"Web search, page extraction, and multi-hop web research.","categories":["search","ai"]},{"id":"alchemy","name":"Alchemy","serviceUrl":"https://mpp.alchemy.com","description":"Blockchain data APIs including Core RPC APIs, Prices API, Portfolio API, and NFT API across 100+ chains.","categories":["blockchain","data"]},{"id":"rpc","name":"Tempo RPC","serviceUrl":"https://rpc.mpp.tempo.xyz","description":"Tempo blockchain JSON-RPC access (mainnet and testnet).","categories":["blockchain"]},{"id":"quicknode","name":"Quicknode","serviceUrl":"https://mpp.quicknode.com","description":"Quicknode Core Node API for 80+ blockchains and 140+ networks.","categories":["blockchain"]},{"id":"storage","name":"Object Storage","serviceUrl":"https://storage.mpp.tempo.xyz","description":"S3/R2-compatible object storage with dynamic per-size pricing.","categories":["storage"]},{"id":"stableemail","name":"StableEmail","serviceUrl":"https://stableemail.dev","description":"Pay-per-send email delivery, forwarding inboxes, and custom subdomains — no API keys or accounts.","categories":["social"]},{"id":"stableenrich","name":"StableEnrich","serviceUrl":"https://stableenrich.dev","description":"Pay-per-request research APIs — people, companies, web search, scraping, places, social media, and contact enrichment.","categories":["data","search","social"]},{"id":"stabletravel","name":"StableTravel","serviceUrl":"https://stabletravel.dev","description":"Pay-per-request travel APIs — flights, hotels, activities, transfers, and real-time flight tracking. Powered by Amadeus and FlightAware.","categories":["data","web"]},{"id":"stablephone","name":"StablePhone","serviceUrl":"https://stablephone.dev","description":"AI phone calls, dedicated phone numbers, and iMessage/FaceTime lookup — pay per request.","categories":["ai","social"]},{"id":"stablesocial","name":"StableSocial","serviceUrl":"https://stablesocial.dev","description":"Pay-per-request social media data from TikTok, Instagram, Facebook, and Reddit.","categories":["social","data"]},{"id":"stablestudio","name":"StableStudio","serviceUrl":"https://stablestudio.dev","description":"Pay-per-generation AI image and video creation — Nano Banana, GPT Image, Grok, Flux, Sora, Veo, Seedance, and Wan.","categories":["ai","media"]},{"id":"stableupload","name":"StableUpload","serviceUrl":"https://stableupload.dev","description":"Pay-per-upload file hosting and static site hosting with custom domains — 6 month TTL.","categories":["storage"]},{"id":"aviationstack","name":"AviationStack","serviceUrl":"https://aviationstack.mpp.tempo.xyz","description":"Real-time and historical flight tracking, airports, airlines, and schedules.","categories":["data"]},{"id":"codestorage","name":"Code Storage","serviceUrl":"https://codestorage.mpp.tempo.xyz","description":"Paid Git repository creation — create repos and get authenticated clone URLs.","categories":["storage"]},{"id":"flightapi","name":"FlightAPI","serviceUrl":"https://flightapi.mpp.tempo.xyz","description":"Real-time flight prices, tracking, and airport schedules from 700+ airlines.","categories":["data"]},{"id":"goflightlabs","name":"GoFlightLabs","serviceUrl":"https://goflightlabs.mpp.tempo.xyz","description":"Real-time flight tracking, prices, schedules, and airline data.","categories":["data"]},{"id":"oxylabs","name":"Oxylabs","serviceUrl":"https://oxylabs.mpp.tempo.xyz","description":"Web scraping API with geo-targeting by country, state, and city. Fetch any public URL with JavaScript rendering support.","categories":["web","data"]},{"id":"spyfu","name":"SpyFu","serviceUrl":"https://spyfu.mpp.tempo.xyz","description":"Competitor keyword research — SEO rankings, PPC ads, ad history, and domain analytics. 18+ years of historical data.","categories":["data","search"]},{"id":"serpapi","name":"SerpApi","serviceUrl":"https://serpapi.mpp.tempo.xyz","description":"Google Flights search — real-time prices, schedules, and booking options.","categories":["search","data"]},{"id":"googlemaps","name":"Google Maps","serviceUrl":"https://googlemaps.mpp.tempo.xyz","description":"Google Maps Platform — geocoding, directions, places, routes, tiles, weather, air quality, and more.","categories":["data"]},{"id":"kicksdb","name":"KicksDB","serviceUrl":"https://kicksdb.mpp.tempo.xyz","description":"Sneaker & streetwear market data — prices, sales history, and availability from StockX, GOAT, and more.","categories":["data"]},{"id":"twocaptcha","name":"2Captcha","serviceUrl":"https://twocaptcha.mpp.tempo.xyz","description":"CAPTCHA solving API — reCAPTCHA, Turnstile, hCaptcha, image captchas, and more.","categories":["web"]},{"id":"postalform","name":"PostalForm","serviceUrl":"https://postalform.com","description":"Print and mail real letters and documents via AI agents.","categories":["web"]},{"id":"prospect-butcher","name":"Prospect Butcher","serviceUrl":"https://agents.prospectbutcher.shop","description":"Order sandwiches for pickup in Brooklyn — the first food purchase made entirely by an AI agent.","categories":["web"]},{"id":"alphavantage","name":"Alpha Vantage","serviceUrl":"https://alphavantage.mpp.paywithlocus.com","description":"Financial market data — stock prices, forex, crypto, commodities, economic indicators, technical analysis, and news sentiment.","categories":["data"]},{"id":"apollo","name":"Apollo","serviceUrl":"https://apollo.mpp.paywithlocus.com","description":"People and company enrichment, lead search, and sales intelligence with 275M+ contacts.","categories":["data"]},{"id":"billboard","name":"Billboard","serviceUrl":"https://billboard.mpp.paywithlocus.com","description":"Post to @MPPBillboard on X. Price starts at $0.01 and doubles with every post. The ultimate AI agent billboard.","categories":["data"]},{"id":"brave","name":"Brave Search","serviceUrl":"https://brave.mpp.paywithlocus.com","description":"Independent web search — web, news, images, videos, AI answers, and LLM context. Privacy-first search from a large independent index.","categories":["search"]},{"id":"builtwith","name":"BuiltWith","serviceUrl":"https://builtwith.mpp.paywithlocus.com","description":"Technology profiling for websites — detect tech stacks, find sites using specific technologies, discover domain relationships, trends, and competitive intelligence across 100M+ websites.","categories":["data"]},{"id":"clado","name":"Clado","serviceUrl":"https://clado.mpp.paywithlocus.com","description":"People search, LinkedIn enrichment, and deep research for lead generation.","categories":["data"]},{"id":"coingecko","name":"CoinGecko","serviceUrl":"https://coingecko.mpp.paywithlocus.com","description":"Cryptocurrency market data — prices, charts, market cap, exchanges, trending coins, global stats, NFTs, derivatives, and on-chain data.","categories":["data"]},{"id":"abstract-company-enrichment","name":"Company Enrichment","serviceUrl":"https://abstract-company-enrichment.mpp.paywithlocus.com","description":"Enrich company data from a domain name.","categories":["data"]},{"id":"deepgram","name":"Deepgram","serviceUrl":"https://deepgram.mpp.paywithlocus.com","description":"Industry-leading speech AI — transcribe audio from URLs with Nova-3, generate natural speech with Aura-2 TTS, and analyze text for sentiment, topics, intents, and summaries.","categories":["data"]},{"id":"deepl","name":"DeepL","serviceUrl":"https://deepl.mpp.paywithlocus.com","description":"Professional translation and text improvement — translate text between 30+ languages with industry-leading quality, or improve and rephrase text with DeepL Write.","categories":["data"]},{"id":"deepseek","name":"DeepSeek","serviceUrl":"https://deepseek.mpp.paywithlocus.com","description":"Frontier AI models — DeepSeek-V3 for fast chat and code, DeepSeek-R1 for deep chain-of-thought reasoning. OpenAI-compatible API format. Among the most capable and cost-efficient models available.","categories":["ai"]},{"id":"diffbot","name":"Diffbot","serviceUrl":"https://diffbot.mpp.paywithlocus.com","description":"Web data extraction — articles, products, discussions, images, videos, and auto-detect.","categories":["web","data"]},{"id":"diffbot-kg","name":"Diffbot KG","serviceUrl":"https://diffbot-kg.mpp.paywithlocus.com","description":"Knowledge Graph — search 10B+ entities and enrich company/person records.","categories":["data"]},{"id":"diffbot-nl","name":"Diffbot NL","serviceUrl":"https://diffbot-nl.mpp.paywithlocus.com","description":"Natural language processing — NER, sentiment, facts, summarization.","categories":["ai"]},{"id":"edgar","name":"EDGAR (SEC)","serviceUrl":"https://edgar.mpp.paywithlocus.com","description":"SEC EDGAR public financial data — company filing history, XBRL financial facts (income statements, balance sheets, cash flows), and full-text search across all public filings. No API key required.","categories":["data"]},{"id":"edgar-search","name":"EDGAR Full-Text Search","serviceUrl":"https://edgar-search.mpp.paywithlocus.com","description":"Full-text search across all SEC filings — 10-Ks, 10-Qs, 8-Ks, proxy statements, and more. Search by keyword, company name, form type, and date range.","categories":["data"]},{"id":"abstract-email-reputation","name":"Email Reputation","serviceUrl":"https://abstract-email-reputation.mpp.paywithlocus.com","description":"Check the reputation and risk score of an email address.","categories":["data"]},{"id":"abstract-exchange-rates","name":"Exchange Rates","serviceUrl":"https://abstract-exchange-rates.mpp.paywithlocus.com","description":"Live, historical, and conversion exchange rates for 150+ currencies.","categories":["data"]},{"id":"grok","name":"Grok","serviceUrl":"https://grok.mpp.paywithlocus.com","description":"xAI models — chat, web/X search, code execution, image generation/editing, and text-to-speech.","categories":["ai"]},{"id":"groq","name":"Groq","serviceUrl":"https://groq.mpp.paywithlocus.com","description":"Ultra-fast LLM inference — Llama 3.3, DeepSeek R1, Gemma 2, GPT-OSS, Qwen, Whisper, and PlayAI TTS. OpenAI-compatible API with industry-leading speed.","categories":["ai"]},{"id":"abstract-holidays","name":"Holidays","serviceUrl":"https://abstract-holidays.mpp.paywithlocus.com","description":"Public holiday data for 200+ countries.","categories":["data"]},{"id":"hunter","name":"Hunter","serviceUrl":"https://hunter.mpp.paywithlocus.com","description":"Email finding, verification, and company enrichment for outreach and lead generation.","categories":["data"]},{"id":"abstract-iban-validation","name":"IBAN Validation","serviceUrl":"https://abstract-iban-validation.mpp.paywithlocus.com","description":"Validate International Bank Account Numbers (IBANs).","categories":["data"]},{"id":"abstract-ip-intelligence","name":"IP Intelligence","serviceUrl":"https://abstract-ip-intelligence.mpp.paywithlocus.com","description":"Detect VPNs, proxies, bots, and Tor nodes by IP address.","categories":["data"]},{"id":"ipinfo","name":"IPinfo","serviceUrl":"https://ipinfo.mpp.paywithlocus.com","description":"IP intelligence — geolocation, ASN, privacy detection, carrier data, and hosting identification.","categories":["data"]},{"id":"judge0","name":"Judge0","serviceUrl":"https://judge0.mpp.paywithlocus.com","description":"Online code execution — run source code in 60+ programming languages with sandboxed isolation.","categories":["compute"]},{"id":"mapbox","name":"Mapbox","serviceUrl":"https://mapbox.mpp.paywithlocus.com","description":"Location and mapping APIs — geocoding, directions, isochrones, matrix routing, map matching, static maps, and spatial queries.","categories":["data"]},{"id":"mathpix","name":"Mathpix","serviceUrl":"https://mathpix.mpp.paywithlocus.com","description":"OCR for math, science, and documents — extract LaTeX, MathML, and Mathpix Markdown from images and handwriting.","categories":["ai"]},{"id":"mistral","name":"Mistral AI","serviceUrl":"https://mistral.mpp.paywithlocus.com","description":"Premier and open-source LLMs — Mistral Large, Medium, Small, Codestral, Magistral reasoning, Pixtral vision, text embeddings, and content moderation.","categories":["ai"]},{"id":"openweather","name":"OpenWeather","serviceUrl":"https://openweather.mpp.paywithlocus.com","description":"Global weather data — current conditions, 5-day forecasts, hourly forecasts, air quality index with pollutants, geocoding, and One Call 3.0 with full weather suite and government alerts.","categories":["data"]},{"id":"perplexity","name":"Perplexity","serviceUrl":"https://perplexity.mpp.paywithlocus.com","description":"AI-powered search — Sonar chat with real-time web grounding, web search, and embeddings.","categories":["ai","search"]},{"id":"abstract-phone-intelligence","name":"Phone Intelligence","serviceUrl":"https://abstract-phone-intelligence.mpp.paywithlocus.com","description":"Validate and get carrier info for phone numbers worldwide.","categories":["data"]},{"id":"rentcast","name":"RentCast","serviceUrl":"https://rentcast.mpp.paywithlocus.com","description":"US real estate intelligence — property records, AVM valuations, rent estimates, sale/rental listings, and market statistics.","categories":["data"]},{"id":"replicate","name":"Replicate","serviceUrl":"https://replicate.mpp.paywithlocus.com","description":"Run thousands of open-source AI models via API — image generation, language models, speech recognition, video, and more. Pay only for what you use.","categories":["ai","media"]},{"id":"screenshotone","name":"ScreenshotOne","serviceUrl":"https://screenshotone.mpp.paywithlocus.com","description":"Website screenshot API — capture any URL, HTML, or markdown as PNG, JPEG, WebP, or PDF. Full-page, element selection, dark mode, ad blocking, and more.","categories":["compute"]},{"id":"stability-ai","name":"Stability AI","serviceUrl":"https://stability-ai.mpp.paywithlocus.com","description":"Generative AI platform for images, 3D models, and audio — text-to-image, editing, upscaling, and more.","categories":["ai","media"]},{"id":"suno","name":"Suno","serviceUrl":"https://suno.mpp.paywithlocus.com","description":"AI music generation — create full songs, generate lyrics, and build custom music tracks with state-of-the-art AI models. Supports custom styles, vocals, and instrumental modes.","categories":["ai","media"]},{"id":"tavily","name":"Tavily","serviceUrl":"https://tavily.mpp.paywithlocus.com","description":"AI-optimized web search, content extraction, site mapping, and crawling API.","categories":["search","web"]},{"id":"abstract-timezone","name":"Timezone","serviceUrl":"https://abstract-timezone.mpp.paywithlocus.com","description":"Current time and timezone conversion for any location.","categories":["data"]},{"id":"abstract-vat","name":"VAT","serviceUrl":"https://abstract-vat.mpp.paywithlocus.com","description":"VAT number validation, rate calculation, and category lookup for EU.","categories":["data"]},{"id":"abstract-web-scraping","name":"Web Scraping","serviceUrl":"https://abstract-web-scraping.mpp.paywithlocus.com","description":"Scrape web pages with optional JavaScript rendering.","categories":["web","data"]},{"id":"wolframalpha","name":"Wolfram|Alpha","serviceUrl":"https://wolframalpha.mpp.paywithlocus.com","description":"Computational knowledge engine — math, science, geography, history, nutrition, finance, and more. Get answers as text, spoken audio, LLM-optimized data, or full structured results.","categories":["data"]},{"id":"stripe-climate","name":"Stripe Climate","serviceUrl":"https://climate.stripe.dev","description":"Fund permanent carbon removal projects via Stripe Climate.","categories":["web"]},{"id":"surf-twitter","name":"Surf Twitter","serviceUrl":"https://twitter.surf.cascade.fyi","description":"Twitter/X data API. Search tweets, look up users and tweets, browse lists, communities, spaces, and trends.","categories":["social","data"]},{"id":"surf-reddit","name":"Surf Reddit","serviceUrl":"https://reddit.surf.cascade.fyi","description":"Reddit data API. Search posts, browse subreddits, read threads with comments, and look up user profiles.","categories":["social","data"]},{"id":"surf-web","name":"Surf Web","serviceUrl":"https://web.surf.cascade.fyi","description":"Web crawling and search API. Crawl any URL to markdown or search the web with AI-powered results.","categories":["web","search"]}]
```
diff --git a/schemas/discovery.json b/schemas/discovery.json
index 0a997041..18c609fc 100644
--- a/schemas/discovery.json
+++ b/schemas/discovery.json
@@ -2315,9 +2315,9 @@
"url": "https://quicknode.com/",
"serviceUrl": "https://mpp.quicknode.com",
"description": "Quicknode Core Node API for 80+ blockchains and 140+ networks.",
+ "icon": "https://mpp.quicknode.com/favicon.ico",
"categories": [
- "rpc",
- "json-rpc",
+ "blockchain"
],
"integration": "first-party",
"tags": [
@@ -2336,8 +2336,7 @@
"methods": {
"tempo": {
"intents": [
- "charge",
- "session"
+ "charge"
],
"assets": [
"0x20c000000000000000000000b9537d11c60e8b50"
@@ -2359,24 +2358,24 @@
"method": "tempo",
"currency": "0x20c000000000000000000000b9537d11c60e8b50",
"decimals": 6,
- "description": "JSON-RPC method",
- "amount": "1000"
- },
- "docs": "https://mpp.quicknode.com/llms.txt"
+ "description": "JSON-RPC calls - $0.001 per call",
+ "amount": "1000",
+ "unitType": "request"
+ }
},
{
"method": "POST",
"path": "/session/:network",
"description": "JSON-RPC calls - $0.00001 per call",
"payment": {
- "intent": "session",
+ "intent": "charge",
"method": "tempo",
"currency": "0x20c000000000000000000000b9537d11c60e8b50",
"decimals": 6,
- "description": "JSON-RPC method",
- "amount": "10"
- },
- "docs": "https://mpp.quicknode.com/llms.txt"
+ "description": "JSON-RPC calls - $0.00001 per call",
+ "amount": "10",
+ "unitType": "request"
+ }
}
]
},
@@ -11985,6 +11984,591 @@
}
}
]
+ },
+ {
+ "id": "surf-twitter",
+ "name": "Surf Twitter",
+ "url": "https://twitter.surf.cascade.fyi",
+ "serviceUrl": "https://twitter.surf.cascade.fyi",
+ "description": "Twitter/X data API. Search tweets, look up users and tweets, browse lists, communities, spaces, and trends.",
+ "categories": [
+ "social",
+ "data"
+ ],
+ "integration": "first-party",
+ "tags": [
+ "twitter",
+ "x",
+ "tweets",
+ "users",
+ "search",
+ "social-media",
+ "lists",
+ "communities",
+ "spaces",
+ "trends"
+ ],
+ "status": "active",
+ "docs": {
+ "homepage": "https://surf.cascade.fyi",
+ "apiReference": "https://twitter.surf.cascade.fyi"
+ },
+ "methods": {
+ "tempo": {
+ "intents": [
+ "charge"
+ ],
+ "assets": [
+ "0x20c000000000000000000000b9537d11c60e8b50"
+ ]
+ }
+ },
+ "realm": "twitter.surf.cascade.fyi",
+ "provider": {
+ "name": "Cascade",
+ "url": "https://surf.cascade.fyi"
+ },
+ "endpoints": [
+ {
+ "method": "GET",
+ "path": "/tweets/search",
+ "description": "Search tweets with advanced operators",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Search tweets with advanced operators",
+ "amount": "5000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/tweets/:id",
+ "description": "Get a single tweet by ID",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get a single tweet by ID",
+ "amount": "1000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/tweets",
+ "description": "Get multiple tweets by IDs (batch)",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get multiple tweets by IDs (batch)",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/tweets/:id/replies",
+ "description": "Get replies to a tweet",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get replies to a tweet",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/tweets/:id/quotes",
+ "description": "Get quote tweets",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get quote tweets",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/tweets/:id/retweeters",
+ "description": "Get users who retweeted a tweet",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get users who retweeted a tweet",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/tweets/:id/thread",
+ "description": "Get full thread for a tweet",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get full thread for a tweet",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/tweets/:id/article",
+ "description": "Get Twitter article content",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get Twitter article content",
+ "amount": "5000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/search",
+ "description": "Search users by keyword",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Search users by keyword",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/relationship",
+ "description": "Check follow relationship between two users",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Check follow relationship between two users",
+ "amount": "1000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:ref",
+ "description": "Get user profile by username or ID",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get user profile by username or ID",
+ "amount": "1000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users",
+ "description": "Get multiple users by IDs (batch)",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get multiple users by IDs (batch)",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:ref/tweets",
+ "description": "Get a user's tweets",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get a user's tweets",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:ref/mentions",
+ "description": "Get tweets mentioning a user",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get tweets mentioning a user",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:ref/followers",
+ "description": "Get a user's followers",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get a user's followers",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:ref/following",
+ "description": "Get accounts a user follows",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get accounts a user follows",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:ref/verified_followers",
+ "description": "Get a user's verified followers",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get a user's verified followers",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/lists/:id/tweets",
+ "description": "Get tweets from a list",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get tweets from a list",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/lists/:id/members",
+ "description": "Get members of a list",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get members of a list",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/lists/:id/followers",
+ "description": "Get followers of a list",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get followers of a list",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/communities/search",
+ "description": "Search communities",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Search communities",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/communities/:id",
+ "description": "Get community details",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get community details",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/communities/:id/tweets",
+ "description": "Get tweets in a community",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get tweets in a community",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/communities/:id/members",
+ "description": "Get community members",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get community members",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/spaces/:id",
+ "description": "Get Twitter Space details",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get Twitter Space details",
+ "amount": "1000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/trends",
+ "description": "Get trending topics",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get trending topics",
+ "amount": "1000"
+ }
+ }
+ ]
+ },
+ {
+ "id": "surf-reddit",
+ "name": "Surf Reddit",
+ "url": "https://reddit.surf.cascade.fyi",
+ "serviceUrl": "https://reddit.surf.cascade.fyi",
+ "description": "Reddit data API. Search posts, browse subreddits, read threads with comments, and look up user profiles.",
+ "categories": [
+ "social",
+ "data"
+ ],
+ "integration": "first-party",
+ "tags": [
+ "reddit",
+ "posts",
+ "subreddits",
+ "comments",
+ "users",
+ "search",
+ "social-media"
+ ],
+ "status": "active",
+ "docs": {
+ "homepage": "https://surf.cascade.fyi",
+ "apiReference": "https://reddit.surf.cascade.fyi"
+ },
+ "methods": {
+ "tempo": {
+ "intents": [
+ "charge"
+ ],
+ "assets": [
+ "0x20c000000000000000000000b9537d11c60e8b50"
+ ]
+ }
+ },
+ "realm": "reddit.surf.cascade.fyi",
+ "provider": {
+ "name": "Cascade",
+ "url": "https://surf.cascade.fyi"
+ },
+ "endpoints": [
+ {
+ "method": "GET",
+ "path": "/search",
+ "description": "Search Reddit posts",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Search Reddit posts",
+ "amount": "5000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/r/:subreddit",
+ "description": "Get subreddit info",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get subreddit info",
+ "amount": "1000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/r/:subreddit/posts",
+ "description": "Get posts from a subreddit",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get posts from a subreddit",
+ "amount": "3000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/posts/:id",
+ "description": "Get a post with comments",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get a post with comments",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:username",
+ "description": "Get user profile",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get user profile",
+ "amount": "1000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:username/posts",
+ "description": "Get a user's posts",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get a user's posts",
+ "amount": "4000"
+ }
+ },
+ {
+ "method": "GET",
+ "path": "/users/:username/comments",
+ "description": "Get a user's comments",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Get a user's comments",
+ "amount": "4000"
+ }
+ }
+ ]
+ },
+ {
+ "id": "surf-web",
+ "name": "Surf Web",
+ "url": "https://web.surf.cascade.fyi",
+ "serviceUrl": "https://web.surf.cascade.fyi",
+ "description": "Web crawling and search API. Crawl any URL to markdown or search the web with AI-powered results.",
+ "categories": [
+ "web",
+ "search"
+ ],
+ "integration": "first-party",
+ "tags": [
+ "crawl",
+ "scrape",
+ "search",
+ "markdown",
+ "web-data"
+ ],
+ "status": "active",
+ "docs": {
+ "homepage": "https://surf.cascade.fyi",
+ "apiReference": "https://web.surf.cascade.fyi"
+ },
+ "methods": {
+ "tempo": {
+ "intents": [
+ "charge"
+ ],
+ "assets": [
+ "0x20c000000000000000000000b9537d11c60e8b50"
+ ]
+ }
+ },
+ "realm": "web.surf.cascade.fyi",
+ "provider": {
+ "name": "Cascade",
+ "url": "https://surf.cascade.fyi"
+ },
+ "endpoints": [
+ {
+ "method": "POST",
+ "path": "/v1/crawl",
+ "description": "Crawl a URL and return content as markdown or HTML",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Crawl a URL and return content as markdown or HTML",
+ "amount": "5000"
+ }
+ },
+ {
+ "method": "POST",
+ "path": "/v1/search",
+ "description": "Search the web with AI-powered results",
+ "payment": {
+ "intent": "charge",
+ "method": "tempo",
+ "currency": "0x20c000000000000000000000b9537d11c60e8b50",
+ "decimals": 6,
+ "description": "Search the web with AI-powered results",
+ "amount": "10000"
+ }
+ }
+ ]
}
]
}
diff --git a/schemas/services.ts b/schemas/services.ts
index 6c05aa4b..0f70ee0a 100644
--- a/schemas/services.ts
+++ b/schemas/services.ts
@@ -5581,4 +5581,130 @@ export const services: ServiceDef[] = [
},
],
},
+
+ // ── Surf Twitter ─────────────────────────────────────────────────────
+ {
+ id: "surf-twitter",
+ name: "Surf Twitter",
+ url: "https://twitter.surf.cascade.fyi",
+ serviceUrl: "https://twitter.surf.cascade.fyi",
+ description: "Twitter/X data API. Search tweets, look up users and tweets, browse lists, communities, spaces, and trends.",
+ categories: ["social", "data"],
+ integration: "first-party",
+ tags: [
+ "twitter",
+ "x",
+ "tweets",
+ "users",
+ "search",
+ "social-media",
+ "lists",
+ "communities",
+ "spaces",
+ "trends",
+ ],
+ docs: {
+ homepage: "https://surf.cascade.fyi",
+ apiReference: "https://twitter.surf.cascade.fyi",
+ },
+ provider: { name: "Cascade", url: "https://surf.cascade.fyi" },
+ realm: "twitter.surf.cascade.fyi",
+ intent: "charge",
+ payment: TEMPO_PAYMENT,
+ endpoints: [
+ { route: "GET /tweets/search", desc: "Search tweets with advanced operators", amount: "5000" },
+ { route: "GET /tweets/:id", desc: "Get a single tweet by ID", amount: "1000" },
+ { route: "GET /tweets", desc: "Get multiple tweets by IDs (batch)", amount: "4000" },
+ { route: "GET /tweets/:id/replies", desc: "Get replies to a tweet", amount: "4000" },
+ { route: "GET /tweets/:id/quotes", desc: "Get quote tweets", amount: "4000" },
+ { route: "GET /tweets/:id/retweeters", desc: "Get users who retweeted a tweet", amount: "4000" },
+ { route: "GET /tweets/:id/thread", desc: "Get full thread for a tweet", amount: "4000" },
+ { route: "GET /tweets/:id/article", desc: "Get Twitter article content", amount: "5000" },
+ { route: "GET /users/search", desc: "Search users by keyword", amount: "4000" },
+ { route: "GET /users/relationship", desc: "Check follow relationship between two users", amount: "1000" },
+ { route: "GET /users/:ref", desc: "Get user profile by username or ID", amount: "1000" },
+ { route: "GET /users", desc: "Get multiple users by IDs (batch)", amount: "4000" },
+ { route: "GET /users/:ref/tweets", desc: "Get a user's tweets", amount: "4000" },
+ { route: "GET /users/:ref/mentions", desc: "Get tweets mentioning a user", amount: "4000" },
+ { route: "GET /users/:ref/followers", desc: "Get a user's followers", amount: "4000" },
+ { route: "GET /users/:ref/following", desc: "Get accounts a user follows", amount: "4000" },
+ { route: "GET /users/:ref/verified_followers", desc: "Get a user's verified followers", amount: "4000" },
+ { route: "GET /lists/:id/tweets", desc: "Get tweets from a list", amount: "4000" },
+ { route: "GET /lists/:id/members", desc: "Get members of a list", amount: "4000" },
+ { route: "GET /lists/:id/followers", desc: "Get followers of a list", amount: "4000" },
+ { route: "GET /communities/search", desc: "Search communities", amount: "4000" },
+ { route: "GET /communities/:id", desc: "Get community details", amount: "4000" },
+ { route: "GET /communities/:id/tweets", desc: "Get tweets in a community", amount: "4000" },
+ { route: "GET /communities/:id/members", desc: "Get community members", amount: "4000" },
+ { route: "GET /spaces/:id", desc: "Get Twitter Space details", amount: "1000" },
+ { route: "GET /trends", desc: "Get trending topics", amount: "1000" },
+ ],
+ },
+
+ // ── Surf Reddit ──────────────────────────────────────────────────────
+ {
+ id: "surf-reddit",
+ name: "Surf Reddit",
+ url: "https://reddit.surf.cascade.fyi",
+ serviceUrl: "https://reddit.surf.cascade.fyi",
+ description: "Reddit data API. Search posts, browse subreddits, read threads with comments, and look up user profiles.",
+ categories: ["social", "data"],
+ integration: "first-party",
+ tags: [
+ "reddit",
+ "posts",
+ "subreddits",
+ "comments",
+ "users",
+ "search",
+ "social-media",
+ ],
+ docs: {
+ homepage: "https://surf.cascade.fyi",
+ apiReference: "https://reddit.surf.cascade.fyi",
+ },
+ provider: { name: "Cascade", url: "https://surf.cascade.fyi" },
+ realm: "reddit.surf.cascade.fyi",
+ intent: "charge",
+ payment: TEMPO_PAYMENT,
+ endpoints: [
+ { route: "GET /search", desc: "Search Reddit posts", amount: "5000" },
+ { route: "GET /r/:subreddit", desc: "Get subreddit info", amount: "1000" },
+ { route: "GET /r/:subreddit/posts", desc: "Get posts from a subreddit", amount: "3000" },
+ { route: "GET /posts/:id", desc: "Get a post with comments", amount: "4000" },
+ { route: "GET /users/:username", desc: "Get user profile", amount: "1000" },
+ { route: "GET /users/:username/posts", desc: "Get a user's posts", amount: "4000" },
+ { route: "GET /users/:username/comments", desc: "Get a user's comments", amount: "4000" },
+ ],
+ },
+
+ // ── Surf Web ─────────────────────────────────────────────────────────
+ {
+ id: "surf-web",
+ name: "Surf Web",
+ url: "https://web.surf.cascade.fyi",
+ serviceUrl: "https://web.surf.cascade.fyi",
+ description: "Web crawling and search API. Crawl any URL to markdown or search the web with AI-powered results.",
+ categories: ["web", "search"],
+ integration: "first-party",
+ tags: [
+ "crawl",
+ "scrape",
+ "search",
+ "markdown",
+ "web-data",
+ ],
+ docs: {
+ homepage: "https://surf.cascade.fyi",
+ apiReference: "https://web.surf.cascade.fyi",
+ },
+ provider: { name: "Cascade", url: "https://surf.cascade.fyi" },
+ realm: "web.surf.cascade.fyi",
+ intent: "charge",
+ payment: TEMPO_PAYMENT,
+ endpoints: [
+ { route: "POST /v1/crawl", desc: "Crawl a URL and return content as markdown or HTML", amount: "5000" },
+ { route: "POST /v1/search", desc: "Search the web with AI-powered results", amount: "10000" },
+ ],
+ },
];