{"openapi":"3.1.0","info":{"title":"Apollo x402 Services","description":"Pre-computed intelligence feeds from Apollo's multi-agent system. Data updated every 2-6 hours. Zero latency, real data.\n\n**Architecture:**\n- `/` — Free HTML landing page (human-friendly discovery)\n- `/api/*` — Paid x402 endpoints (USDC on Base)","version":"3.0.0"},"paths":{"/":{"get":{"summary":"Landing Page","description":"FREE HTML landing page for humans and agents.","operationId":"landing_page_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/.well-known/x402":{"get":{"summary":"Discovery Document","description":"x402 Discovery Document — enables automatic registration on x402scan.com\nPoints to /api/* endpoints (paid via x402).\nEnriched with per-endpoint metadata for agent discovery.","operationId":"discovery_document__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Discovery Document  Well Known X402 Get"}}}}}}},"/.well-known/x402-manifest":{"get":{"summary":"Discovery Manifest","description":"Alias for /.well-known/x402 — some crawlers/agents look for this path.","operationId":"discovery_manifest__well_known_x402_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Discovery Manifest  Well Known X402 Manifest Get"}}}}}}},"/api/discovery":{"get":{"summary":"Discovery Alias","description":"Alias for /.well-known/x402 — human-friendly discovery path.\nAlso available at /api/discovery (agents expect /api/ prefix).","operationId":"discovery_alias_api_discovery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Discovery Alias Api Discovery Get"}}}}}}},"/discovery":{"get":{"summary":"Discovery Alias","description":"Alias for /.well-known/x402 — human-friendly discovery path.\nAlso available at /api/discovery (agents expect /api/ prefix).","operationId":"discovery_alias_discovery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Discovery Alias Discovery Get"}}}}}}},"/.well-known/agent.json":{"get":{"summary":"Agent Json","description":"A2A-compliant Agent Card — standard agent-to-agent discovery.\n\nConforms to the Agent2Agent Protocol (https://a2a-protocol.org).\nA2A clients discover this at /.well-known/agent.json and use it\nto understand our capabilities, skills, and interaction endpoint.","operationId":"agent_json__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agent Json  Well Known Agent Json Get"}}}}}}},"/.well-known/agent-registration.json":{"get":{"summary":"Agent Registration","description":"ERC-8004 Agent Registration Document — enables trustless agent discovery\nFormat: https://eips.ethereum.org/EIPS/eip-8004#registration-v1","operationId":"agent_registration__well_known_agent_registration_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agent Registration  Well Known Agent Registration Json Get"}}}}}}},"/signup":{"get":{"summary":"Signup Page","description":"Human-friendly signup page that redirects to getting-started#api-key.","operationId":"signup_page_signup_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/docs/getting-started":{"get":{"summary":"Getting Started Page","description":"FREE getting started guide — shows developers how to make their first paid request.","operationId":"getting_started_page_docs_getting_started_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/docs/proxy":{"get":{"summary":"Proxy Docs Page","description":"FREE proxy buyer's guide — explains proxy infrastructure from buyer's POV.","operationId":"proxy_docs_page_docs_proxy_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/playground":{"get":{"summary":"Playground Page","description":"FREE interactive API playground — try all 54 endpoints instantly.","operationId":"playground_page_playground_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/favicon.ico":{"get":{"summary":"Favicon","description":"Serve an SVG favicon.","operationId":"favicon_favicon_ico_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/mcp-registry-auth":{"get":{"summary":"Mcp Registry Auth","description":"MCP Registry domain ownership verification.","operationId":"mcp_registry_auth__well_known_mcp_registry_auth_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/security.txt":{"get":{"summary":"Security Txt","description":"Security contact info.","operationId":"security_txt_root","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/security.txt":{"get":{"summary":"Security Txt","description":"Security contact info.","operationId":"security_txt_wellknown","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"summary":"Robots Txt","description":"SEO: Allow all crawlers — especially AI agents (our customers).","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","description":"LLM-readable site description (compact).","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms-full.txt":{"get":{"summary":"Llms Full Txt","description":"LLM-readable full documentation.","operationId":"llms_full_txt_llms_full_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap Xml","description":"SEO: Sitemap for search engines.","operationId":"sitemap_xml_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"summary":"Health","description":"FREE health check endpoint.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/api/agent-intel":{"get":{"summary":"Agent Intel","description":"Agent economy opportunities — bounties, platforms, hackathons, market signals.","operationId":"agent_intel_api_agent_intel_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Filter: all, bounties, platforms, x402, defi","default":"all","title":"Category"},"description":"Filter: all, bounties, platforms, x402, defi"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Intel Api Agent Intel Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sentiment":{"get":{"summary":"Sentiment","description":"Real-time X/Twitter sentiment across crypto, DeFi, AI agents, tech macro.","operationId":"sentiment_api_sentiment_get","parameters":[{"name":"topic","in":"query","required":false,"schema":{"type":"string","description":"Topic to get sentiment for","default":"agent economy","title":"Topic"},"description":"Topic to get sentiment for"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sentiment Api Sentiment Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/weekly-digest":{"get":{"summary":"Weekly Digest","description":"Weekly consolidated intel — top opportunities, trends, recommendations.","operationId":"weekly_digest_api_weekly_digest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Weekly Digest Api Weekly Digest Get"}}}}}}},"/api/micro-saas":{"get":{"summary":"Micro Saas","description":"Curated micro-SaaS ideas and buildable opportunities.","operationId":"micro_saas_api_micro_saas_get","parameters":[{"name":"vertical","in":"query","required":false,"schema":{"type":"string","description":"Filter: all, saas, data, agent","default":"all","title":"Vertical"},"description":"Filter: all, saas, data, agent"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Micro Saas Api Micro Saas Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/web3-hackathons":{"get":{"summary":"Web3 Hackathons","description":"Web3 hackathon aggregator — ETHGlobal, Solana, Base, Ethereum, Polygon (registration open only).","operationId":"web3_hackathons_api_web3_hackathons_get","parameters":[{"name":"platform","in":"query","required":false,"schema":{"type":"string","description":"Filter: all, ethglobal, solana, base, ethereum, polygon","default":"all","title":"Platform"},"description":"Filter: all, ethglobal, solana, base, ethereum, polygon"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Filter by chain: all, ethereum, solana, base, polygon, multi","default":"all","title":"Chain"},"description":"Filter by chain: all, ethereum, solana, base, polygon, multi"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Web3 Hackathons Api Web3 Hackathons Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proxy/request":{"post":{"summary":"Proxy Request","description":"Proxy relay service. Send us a target URL and we fetch it through\nour residential proxy network. $0.005/request with 250KB cap.\nRate limit: 100 req/min per wallet.","operationId":"proxy_request_post","parameters":[{"name":"target_url","in":"query","required":true,"schema":{"type":"string","description":"The URL to fetch through the proxy (required)","title":"Target Url"},"description":"The URL to fetch through the proxy (required)"},{"name":"method","in":"query","required":false,"schema":{"type":"string","description":"HTTP method: GET, POST, HEAD","default":"GET","title":"Method"},"description":"HTTP method: GET, POST, HEAD"},{"name":"proxy_type","in":"query","required":false,"schema":{"type":"string","description":"Proxy type: residential only","default":"residential","title":"Proxy Type"},"description":"Proxy type: residential only"},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"ISO country code (e.g., US, GB, DE, JP)","default":"US","title":"Country"},"description":"ISO country code (e.g., US, GB, DE, JP)"},{"name":"session_type","in":"query","required":false,"schema":{"type":"string","description":"Session type: rotating (new IP per request) or sticky","default":"rotating","title":"Session Type"},"description":"Session type: rotating (new IP per request) or sticky"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Proxy Request Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Proxy Request","description":"Proxy relay service. Send us a target URL and we fetch it through\nour residential proxy network. $0.005/request with 250KB cap.\nRate limit: 100 req/min per wallet.","operationId":"proxy_request_get","parameters":[{"name":"target_url","in":"query","required":true,"schema":{"type":"string","description":"The URL to fetch through the proxy (required)","title":"Target Url"},"description":"The URL to fetch through the proxy (required)"},{"name":"method","in":"query","required":false,"schema":{"type":"string","description":"HTTP method: GET, POST, HEAD","default":"GET","title":"Method"},"description":"HTTP method: GET, POST, HEAD"},{"name":"proxy_type","in":"query","required":false,"schema":{"type":"string","description":"Proxy type: residential only","default":"residential","title":"Proxy Type"},"description":"Proxy type: residential only"},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"ISO country code (e.g., US, GB, DE, JP)","default":"US","title":"Country"},"description":"ISO country code (e.g., US, GB, DE, JP)"},{"name":"session_type","in":"query","required":false,"schema":{"type":"string","description":"Session type: rotating (new IP per request) or sticky","default":"rotating","title":"Session Type"},"description":"Session type: rotating (new IP per request) or sticky"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Proxy Request Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proxy/status":{"get":{"summary":"Proxy Status","description":"Check proxy service availability and configuration.","operationId":"proxy_status_api_proxy_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Proxy Status Api Proxy Status Get"}}}}}}},"/api/scrape":{"post":{"summary":"Scrape Url","description":"Scraping as a Service — Fetch any URL through residential proxies with\nintelligent content extraction. Returns clean text/markdown suitable for\nLLM consumption.\n\n$0.01/request. 250KB content cap. Rate limit: 60 req/min per wallet.","operationId":"scrape_url_post","parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string","description":"The URL to scrape","title":"Url"},"description":"The URL to scrape"},{"name":"extract","in":"query","required":false,"schema":{"type":"boolean","description":"Extract clean text (default: true)","default":true,"title":"Extract"},"description":"Extract clean text (default: true)"},{"name":"include_links","in":"query","required":false,"schema":{"type":"boolean","description":"Include extracted links","default":false,"title":"Include Links"},"description":"Include extracted links"},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Proxy country ISO code (e.g., US, GB, DE)","default":"US","title":"Country"},"description":"Proxy country ISO code (e.g., US, GB, DE)"},{"name":"format","in":"query","required":false,"schema":{"type":"string","description":"Output format: raw, text, markdown","default":"markdown","title":"Format"},"description":"Output format: raw, text, markdown"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Scrape Url Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Scrape Url","description":"Scraping as a Service — Fetch any URL through residential proxies with\nintelligent content extraction. Returns clean text/markdown suitable for\nLLM consumption.\n\n$0.01/request. 250KB content cap. Rate limit: 60 req/min per wallet.","operationId":"scrape_url_get","parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string","description":"The URL to scrape","title":"Url"},"description":"The URL to scrape"},{"name":"extract","in":"query","required":false,"schema":{"type":"boolean","description":"Extract clean text (default: true)","default":true,"title":"Extract"},"description":"Extract clean text (default: true)"},{"name":"include_links","in":"query","required":false,"schema":{"type":"boolean","description":"Include extracted links","default":false,"title":"Include Links"},"description":"Include extracted links"},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Proxy country ISO code (e.g., US, GB, DE)","default":"US","title":"Country"},"description":"Proxy country ISO code (e.g., US, GB, DE)"},{"name":"format","in":"query","required":false,"schema":{"type":"string","description":"Output format: raw, text, markdown","default":"markdown","title":"Format"},"description":"Output format: raw, text, markdown"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Scrape Url Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scrape/search":{"get":{"summary":"Scrape Search","description":"Web Search — Query Brave Search and return structured results.\n$0.005/query. Max 20 results per query.","operationId":"scrape_search_api_scrape_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Search query","title":"Q"},"description":"Search query"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","description":"Number of results (max 20)","default":10,"title":"Count"},"description":"Number of results (max 20)"},{"name":"site","in":"query","required":false,"schema":{"type":"string","description":"Site filter: reddit, hn, github, twitter, producthunt","default":"","title":"Site"},"description":"Site filter: reddit, hn, github, twitter, producthunt"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Scrape Search Api Scrape Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/x-search":{"get":{"summary":"X Search Endpoint","description":"Real-time X/Twitter Intelligence — search posts, analyze sentiment,\ntrack conversations via Grok's x_search.\n\n$0.25/query. Returns structured post data with engagement metrics\nand AI-synthesized analysis. Max 25 posts per query.\n\nPremium data source: real-time access to X/Twitter that agents can't\nget through standard web scraping.","operationId":"x_search_endpoint_api_x_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Search query (keywords, hashtags, handles)","title":"Q"},"description":"Search query (keywords, hashtags, handles)"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","description":"Max posts to return (1-25, default 10)","default":10,"title":"Count"},"description":"Max posts to return (1-25, default 10)"},{"name":"handles","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated handles to filter (max 10)","default":"","title":"Handles"},"description":"Comma-separated handles to filter (max 10)"},{"name":"exclude_handles","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated handles to exclude (max 10)","default":"","title":"Exclude Handles"},"description":"Comma-separated handles to exclude (max 10)"},{"name":"from_date","in":"query","required":false,"schema":{"type":"string","description":"Start date (YYYY-MM-DD)","default":"","title":"From Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"to_date","in":"query","required":false,"schema":{"type":"string","description":"End date (YYYY-MM-DD)","default":"","title":"To Date"},"description":"End date (YYYY-MM-DD)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response X Search Endpoint Api X Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pain-points":{"get":{"summary":"Pain Points Feed","description":"Multi-source pain point intelligence with NLP clustering.\n\nScraped from Reddit, HN, ProductHunt, IndieHackers. Updated every 2h by autonomous pipeline.\n$0.03/request.\nReturns: pain points, clusters, micro-SaaS suggestions, top keywords.","operationId":"pain_points_feed_api_pain_points_get","parameters":[{"name":"keyword","in":"query","required":false,"schema":{"type":"string","description":"Optional keyword filter (e.g., 'billing', 'automation'). Empty = all pain points.","default":"","title":"Keyword"},"description":"Optional keyword filter (e.g., 'billing', 'automation'). Empty = all pain points."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pain Points Feed Api Pain Points Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agentic-trends":{"get":{"summary":"Agentic Trends Feed","description":"Agentic economy trends — market signals, funding, adoption.\n\nScraped from Reddit, HN, GitHub, Twitter. Updated every 2h.\n$0.02/request.","operationId":"agentic_trends_feed_api_agentic_trends_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agentic Trends Feed Api Agentic Trends Get"}}}}}}},"/api/keyword-opps":{"get":{"summary":"Keyword Opps Feed","description":"Keyword flywheel — seed → variants → opportunities.\n\nUpdated every 2h by autonomous pipeline. $0.02/request.\nReturns keyword variants, opportunity mapping, cross-linked feeds.","operationId":"keyword_opps_feed_api_keyword_opps_get","parameters":[{"name":"seed","in":"query","required":false,"schema":{"type":"string","description":"Optional seed keyword filter (e.g., 'AI automation'). Empty = all keywords.","default":"","title":"Seed"},"description":"Optional seed keyword filter (e.g., 'AI automation'). Empty = all keywords."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Keyword Opps Feed Api Keyword Opps Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bundle/opportunity-pack":{"get":{"summary":"Opportunity Pack","description":"Opportunity Pack — keywords + pain points + micro-SaaS ideas.\n\n$0.05 (save 50% vs buying individually). Premium bundle.","operationId":"opportunity_pack_api_bundle_opportunity_pack_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Opportunity Pack Api Bundle Opportunity Pack Get"}}}}}}},"/api/bundle/agentic-insights":{"get":{"summary":"Agentic Insights","description":"Agentic Insights Pack — trends + pain points + agent intel.\n\n$0.07 (save 50% vs buying individually). Premium bundle.","operationId":"agentic_insights_api_bundle_agentic_insights_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agentic Insights Api Bundle Agentic Insights Get"}}}}}}},"/api/bundle/builder-intel":{"get":{"summary":"Builder Intel Bundle","description":"Builder Intel — GitHub trending + PH launches + agent intel.\n\n$0.05 (save 40% vs $0.06 buying individually). Built for builder agents.","operationId":"builder_intel_bundle_api_bundle_builder_intel_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Builder Intel Bundle Api Bundle Builder Intel Get"}}}}}}},"/api/producthunt":{"get":{"summary":"Producthunt Feed","description":"Product Hunt daily launches — AI-categorized new products.\n\nSources the public PH Atom feed. $0.03/request. Updated every 4h.","operationId":"producthunt_feed_api_producthunt_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Filter by category: all, ai, devtools, web3, saas, design, productivity","default":"all","title":"Category"},"description":"Filter by category: all, ai, devtools, web3, saas, design, productivity"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max launches (1-50)","default":30,"title":"Limit"},"description":"Max launches (1-50)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Producthunt Feed Api Producthunt Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/github-trending":{"get":{"summary":"Github Trending Feed","description":"GitHub trending repos — new repositories ranked by star velocity.\n\nStar velocity = stars/day since creation. Surfaces genuinely new,\nfast-growing repos across AI, web3, agent infra, and general categories.\n$0.02/request. Updated every 4h.","operationId":"github_trending_feed_api_github_trending_get","parameters":[{"name":"language","in":"query","required":false,"schema":{"type":"string","description":"Filter by language: python, typescript, rust, go, javascript, or 'all'","default":"all","title":"Language"},"description":"Filter by language: python, typescript, rust, go, javascript, or 'all'"},{"name":"topic","in":"query","required":false,"schema":{"type":"string","description":"Filter by topic: ai, llm, web3, mcp, agent, or 'all'","default":"all","title":"Topic"},"description":"Filter by topic: ai, llm, web3, mcp, agent, or 'all'"},{"name":"since","in":"query","required":false,"schema":{"type":"string","description":"Time window: daily (7d), weekly (14d), monthly (60d)","default":"daily","title":"Since"},"description":"Time window: daily (7d), weekly (14d), monthly (60d)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max repos (1-50)","default":30,"title":"Limit"},"description":"Max repos (1-50)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Github Trending Feed Api Github Trending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/crypto-prices":{"get":{"summary":"Crypto Prices","description":"Live cryptocurrency prices from CoinGecko. Any token, real-time.","operationId":"crypto_prices_legacy","parameters":[{"name":"ids","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated CoinGecko coin IDs (e.g., bitcoin,ethereum,solana)","default":"bitcoin,ethereum,solana","title":"Ids"},"description":"Comma-separated CoinGecko coin IDs (e.g., bitcoin,ethereum,solana)"},{"name":"vs_currencies","in":"query","required":false,"schema":{"type":"string","description":"Target currencies: usd, eur, btc, eth (comma-separated)","default":"usd","title":"Vs Currencies"},"description":"Target currencies: usd, eur, btc, eth (comma-separated)"},{"name":"include_market_cap","in":"query","required":false,"schema":{"type":"string","description":"Include market cap","default":"true","title":"Include Market Cap"},"description":"Include market cap"},{"name":"include_24hr_change","in":"query","required":false,"schema":{"type":"string","description":"Include 24h change","default":"true","title":"Include 24Hr Change"},"description":"Include 24h change"},{"name":"include_24hr_vol","in":"query","required":false,"schema":{"type":"string","description":"Include 24h volume","default":"false","title":"Include 24Hr Vol"},"description":"Include 24h volume"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Crypto Prices Legacy"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/crypto-trending":{"get":{"summary":"Crypto Trending","description":"Trending cryptocurrencies — top movers by search volume on CoinGecko.","operationId":"crypto_trending_api_crypto_trending_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":15,"minimum":1,"description":"Max results (1-15)","default":15,"title":"Limit"},"description":"Max results (1-15)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Crypto Trending Api Crypto Trending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ip-intel":{"get":{"summary":"Ip Intel","description":"Multi-source IP intelligence: geo, ports, vulns, threat classification, reputation.","operationId":"ip_intel_api_ip_intel_get","parameters":[{"name":"ip","in":"query","required":false,"schema":{"type":"string","description":"IPv4 address to investigate","title":"Ip"},"description":"IPv4 address to investigate"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ip Intel Api Ip Intel Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/domain-intel":{"get":{"summary":"Domain Intel","description":"Multi-source domain intelligence: DNS, SSL certs, geo, threat analysis.","operationId":"domain_intel_api_domain_intel_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","description":"Domain name to investigate (no protocol prefix)","title":"Domain"},"description":"Domain name to investigate (no protocol prefix)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Domain Intel Api Domain Intel Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fx-rates":{"get":{"summary":"Fx Rates","description":"Live foreign exchange rates from ECB via Frankfurter.","operationId":"fx_rates_api_fx_rates_get","parameters":[{"name":"base","in":"query","required":false,"schema":{"type":"string","description":"Base currency ISO code","default":"USD","title":"Base"},"description":"Base currency ISO code"},{"name":"symbols","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated target currencies (empty = all)","default":"","title":"Symbols"},"description":"Comma-separated target currencies (empty = all)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fx Rates Api Fx Rates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stackexchange":{"get":{"summary":"Stackexchange Search","description":"Search programming Q&A from StackExchange (StackOverflow + 170+ sites). No API key needed.","operationId":"stackexchange_search_api_stackexchange_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Search query for questions","default":"","title":"Query"},"description":"Search query for questions"},{"name":"site","in":"query","required":false,"schema":{"type":"string","description":"StackExchange site (stackoverflow, serverfault, superuser, etc.)","default":"stackoverflow","title":"Site"},"description":"StackExchange site (stackoverflow, serverfault, superuser, etc.)"},{"name":"tagged","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated tags to filter (e.g., python,django)","default":"","title":"Tagged"},"description":"Comma-separated tags to filter (e.g., python,django)"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","description":"Sort by: relevance, votes, creation, hot","default":"relevance","title":"Sort"},"description":"Sort by: relevance, votes, creation, hot"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"description":"Page number (1-10)","default":1,"title":"Page"},"description":"Page number (1-10)"},{"name":"pagesize","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"description":"Results per page (1-30)","default":10,"title":"Pagesize"},"description":"Results per page (1-30)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Stackexchange Search Api Stackexchange Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/weather/current":{"get":{"summary":"Weather Current","description":"Current weather conditions via Open-Meteo. Accepts lat/lon or city name (q).","operationId":"weather_current_api_weather_current_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","description":"Latitude (-90 to 90)","title":"Lat"},"description":"Latitude (-90 to 90)"},{"name":"lon","in":"query","required":false,"schema":{"type":"number","description":"Longitude (-180 to 180)","title":"Lon"},"description":"Longitude (-180 to 180)"},{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"City/place name (auto-geocoded). Use instead of lat/lon.","title":"Q"},"description":"City/place name (auto-geocoded). Use instead of lat/lon."},{"name":"units","in":"query","required":false,"schema":{"type":"string","description":"fahrenheit or celsius","default":"fahrenheit","title":"Units"},"description":"fahrenheit or celsius"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Weather Current Api Weather Current Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/weather/forecast":{"get":{"summary":"Weather Forecast","description":"7-day weather forecast via Open-Meteo. Accepts lat/lon or city name (q).","operationId":"weather_forecast_api_weather_forecast_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","description":"Latitude","title":"Lat"},"description":"Latitude"},{"name":"lon","in":"query","required":false,"schema":{"type":"number","description":"Longitude","title":"Lon"},"description":"Longitude"},{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"City/place name (auto-geocoded). Use instead of lat/lon.","title":"Q"},"description":"City/place name (auto-geocoded). Use instead of lat/lon."},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":16,"minimum":1,"description":"Number of days (1-16)","default":7,"title":"Days"},"description":"Number of days (1-16)"},{"name":"units","in":"query","required":false,"schema":{"type":"string","description":"fahrenheit or celsius","default":"fahrenheit","title":"Units"},"description":"fahrenheit or celsius"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Weather Forecast Api Weather Forecast Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ip-reputation":{"get":{"summary":"Ip Reputation","description":"IP reputation check via AbuseIPDB. Threat intelligence and abuse reports.","operationId":"ip_reputation_api_ip_reputation_get","parameters":[{"name":"ip","in":"query","required":true,"schema":{"type":"string","description":"IPv4 or IPv6 address to check","title":"Ip"},"description":"IPv4 or IPv6 address to check"},{"name":"max_age","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Max age of reports in days","default":30,"title":"Max Age"},"description":"Max age of reports in days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ip Reputation Api Ip Reputation Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/malware/url":{"get":{"summary":"Malware Url Scan","description":"URL malware scanning. Uses VirusTotal (70+ engines) when available, falls back to URLhaus threat intel.","operationId":"malware_url_scan_api_malware_url_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"URL to scan for malware","title":"Url"},"description":"URL to scan for malware"},{"name":"wait","in":"query","required":false,"schema":{"type":"boolean","description":"Wait for fresh analysis (VirusTotal only)","default":false,"title":"Wait"},"description":"Wait for fresh analysis (VirusTotal only)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Malware Url Scan Api Malware Url Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ml/sentiment":{"get":{"summary":"Ml Sentiment","description":"Text sentiment analysis via Hugging Face.","operationId":"ml_sentiment_api_ml_sentiment_get","parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","description":"Text to analyze","title":"Text"},"description":"Text to analyze"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ml Sentiment Api Ml Sentiment Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ml/entities":{"get":{"summary":"Ml Entities","description":"Named Entity Recognition via Hugging Face. Extract persons, orgs, locations.","operationId":"ml_entities_api_ml_entities_get","parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","description":"Text to analyze","title":"Text"},"description":"Text to analyze"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ml Entities Api Ml Entities Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ml/summarize":{"get":{"summary":"Ml Summarize","description":"Text summarization via Hugging Face.","operationId":"ml_summarize_api_ml_summarize_get","parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","description":"Text to summarize","title":"Text"},"description":"Text to summarize"},{"name":"max_length","in":"query","required":false,"schema":{"type":"integer","maximum":300,"minimum":50,"description":"Max summary length","default":150,"title":"Max Length"},"description":"Max summary length"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ml Summarize Api Ml Summarize Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/breach-check":{"get":{"summary":"Breach Check","description":"Email/data breach check via Have I Been Pwned (Troy Hunt).\n\nCheck if an email has appeared in known data breaches. Returns breach count,\nrisk level (LOW/MEDIUM/HIGH/CRITICAL), and security recommendations.\n\nUse 'full=true' for detailed breach info (data types exposed, PwnCount, etc).\nUse 'breach=Name' to get details about a specific breach.\nUse 'list_all=true' to see all known breaches (no email required).","operationId":"breach_check_api_breach_check_get","parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string","description":"Email address to check for breaches","title":"Email"},"description":"Email address to check for breaches"},{"name":"full","in":"query","required":false,"schema":{"type":"boolean","description":"Return full breach details (default: false = names only)","default":false,"title":"Full"},"description":"Return full breach details (default: false = names only)"},{"name":"breach","in":"query","required":false,"schema":{"type":"string","description":"Get details for a specific breach by name","default":"","title":"Breach"},"description":"Get details for a specific breach by name"},{"name":"list_all","in":"query","required":false,"schema":{"type":"boolean","description":"List all known breaches (top 100 recent)","default":false,"title":"List All"},"description":"List all known breaches (top 100 recent)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Breach Check Api Breach Check Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/eth/balance":{"get":{"summary":"Eth Balance","description":"Ethereum address ETH balance lookup.\n\nReturns ETH balance in wei and formatted ETH. Essential for crypto wallets\nand DeFi agents. Uses Etherscan API.","operationId":"eth_balance_api_eth_balance_get","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Ethereum address (0x...)","title":"Address"},"description":"Ethereum address (0x...)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Eth Balance Api Eth Balance Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/eth/transactions":{"get":{"summary":"Eth Transactions","description":"Ethereum transaction history for an address.\n\nReturns recent transactions with value, gas, timestamps, and confirmation details.\nIncludes ETH value, gas price in gwei, and transaction status.","operationId":"eth_transactions_api_eth_transactions_get","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Ethereum address (0x...)","title":"Address"},"description":"Ethereum address (0x...)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Results per page (max 100)","default":10,"title":"Offset"},"description":"Results per page (max 100)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Eth Transactions Api Eth Transactions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/eth/gas":{"get":{"summary":"Eth Gas Prices","description":"Current Ethereum gas prices.\n\nReturns safe, standard, and fast gas prices in gwei with estimated USD\ncosts for common transactions (ETH transfer, token transfer, DEX swap).","operationId":"eth_gas_prices_api_eth_gas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Eth Gas Prices Api Eth Gas Get"}}}}}}},"/api/osint/wallet":{"get":{"summary":"Osint Wallet","description":"Comprehensive wallet OSINT intelligence report.\n\nAggregates data from multiple free sources (Ethereum RPC, Blockscout) to build\na complete wallet profile including:\n- ETH balance with live USD estimate\n- ENS name resolution\n- Transaction history analysis (patterns, volume, frequency)\n- ERC-20 token holdings\n- Known entity labeling (exchanges, protocols, mixers, attackers)\n- Counterparty intelligence\n- Heuristic risk scoring (0-100)\n\nPremium endpoint: $0.50/query. Useful for compliance, due diligence,\nand automated wallet screening by AI agents.","operationId":"osint_wallet_api_osint_wallet_get","parameters":[{"name":"address","in":"query","required":false,"schema":{"type":"string","description":"Ethereum address (0x...)","title":"Address"},"description":"Ethereum address (0x...)"},{"name":"wallet","in":"query","required":false,"schema":{"type":"string","description":"Alias for 'address' — Ethereum address (0x...)","title":"Wallet"},"description":"Alias for 'address' — Ethereum address (0x...)"},{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Alias for 'address' — Ethereum address (0x...)","title":"Query"},"description":"Alias for 'address' — Ethereum address (0x...)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Osint Wallet Api Osint Wallet Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/osint/company":{"get":{"summary":"Osint Company","description":"Comprehensive company OSINT intelligence report.\n\nAggregates data from 6+ free sources to build a complete company profile:\n- **Identity**: Name, description, founding date, headquarters, industry (Wikidata/Wikipedia)\n- **People**: CEO, founders, employee count\n- **Financials**: SEC filings, stock exchange, revenue, assets (SEC EDGAR + Wikidata)\n- **Social**: Twitter/X, Facebook, Instagram, YouTube, GitHub presence\n- **GitHub**: Organization details, top repositories, star counts\n- **Tech Footprint**: DNS provider, email provider, email security (SPF/DMARC), detected SaaS tools\n- **Domain Registration**: Registration date, expiry, domain age, registrar, lock status, DNSSEC (RDAP)\n- **Community Buzz**: HackerNews mentions and buzz score (Algolia API)\n- **Risk Assessment**: Heuristic risk score (0-100) based on public data, domain age, and infrastructure\n\nPremium endpoint: $2.00/query. Ideal for due diligence, competitive analysis,\nand automated company screening by AI agents.","operationId":"osint_company_api_osint_company_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Company name or domain (e.g., 'Apple', 'stripe.com', 'Goldman Sachs')","title":"Query"},"description":"Company name or domain (e.g., 'Apple', 'stripe.com', 'Goldman Sachs')"},{"name":"name","in":"query","required":false,"schema":{"type":"string","description":"Alias for 'query' — company name or domain","title":"Name"},"description":"Alias for 'query' — company name or domain"},{"name":"company","in":"query","required":false,"schema":{"type":"string","description":"Alias for 'query' — company name or domain","title":"Company"},"description":"Alias for 'query' — company name or domain"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Osint Company Api Osint Company Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/osint/person":{"get":{"summary":"Osint Person","description":"Comprehensive person OSINT intelligence report.\n\nAggregates data from 6+ free sources to build a complete person profile:\n- **Identity**: Name, biography, birth date, nationality, image (Wikidata/Wikipedia)\n- **Career**: Occupation, employer, positions held, fields of work\n- **Education**: Universities, degrees\n- **Awards**: Honors and recognitions\n- **Social Media**: Twitter/X, Instagram, GitHub, website links\n- **GitHub**: Developer profile, top repos, languages, stars, contribution activity\n- **Academic**: Papers, citations, h-index, affiliations (Semantic Scholar)\n- **Community Buzz**: HackerNews mentions, buzz score, HN account detection\n- **Security**: PGP key presence (if email provided)\n- **Confidence Assessment**: Cross-source corroboration score (0-100)\n\nPremium endpoint: $1.00/query. Ideal for due diligence, hiring verification,\nspeaker research, and automated person screening by AI agents.","operationId":"osint_person_api_osint_person_get","parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","description":"Person's name (e.g., 'Vitalik Buterin', 'Linus Torvalds')","title":"Name"},"description":"Person's name (e.g., 'Vitalik Buterin', 'Linus Torvalds')"},{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Alias for 'name' — person's full name","title":"Query"},"description":"Alias for 'name' — person's full name"},{"name":"person","in":"query","required":false,"schema":{"type":"string","description":"Alias for 'name' — person's full name","title":"Person"},"description":"Alias for 'name' — person's full name"},{"name":"email","in":"query","required":false,"schema":{"type":"string","description":"Optional email for Gravatar + PGP lookup","title":"Email"},"description":"Optional email for Gravatar + PGP lookup"},{"name":"github","in":"query","required":false,"schema":{"type":"string","description":"Optional GitHub username for direct profile lookup","title":"Github"},"description":"Optional GitHub username for direct profile lookup"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Osint Person Api Osint Person Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/defi-yields":{"get":{"summary":"Defi Yields","description":"Top DeFi yields across chains from DefiLlama. Free API, real-time, 18K+ pools.","operationId":"defi_yields_api_defi_yields_get","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Filter by chain: all, ethereum, solana, base, arbitrum, polygon, avalanche, binance, optimism","default":"all","title":"Chain"},"description":"Filter by chain: all, ethereum, solana, base, arbitrum, polygon, avalanche, binance, optimism"},{"name":"min_tvl","in":"query","required":false,"schema":{"type":"number","description":"Minimum TVL in USD (default $100K)","default":100000,"title":"Min Tvl"},"description":"Minimum TVL in USD (default $100K)"},{"name":"stablecoin","in":"query","required":false,"schema":{"type":"string","description":"Filter: all, true (stablecoin only), false (non-stablecoin only)","default":"all","title":"Stablecoin"},"description":"Filter: all, true (stablecoin only), false (non-stablecoin only)"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","description":"Sort by: apy, tvl, apy_base","default":"apy","title":"Sort"},"description":"Sort by: apy, tvl, apy_base"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max results (1-200)","default":50,"title":"Limit"},"description":"Max results (1-200)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Defi Yields Api Defi Yields Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/defi-protocols":{"get":{"summary":"Defi Protocols","description":"Top DeFi protocols by TVL from DefiLlama. Categories, chain breakdown, TVL changes.","operationId":"defi_protocols_api_defi_protocols_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Filter by category: all, Lending, DEX, Liquid Staking, Bridge, CDP, Yield, Derivatives","default":"all","title":"Category"},"description":"Filter by category: all, Lending, DEX, Liquid Staking, Bridge, CDP, Yield, Derivatives"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Filter by chain presence: all, ethereum, solana, base, arbitrum","default":"all","title":"Chain"},"description":"Filter by chain presence: all, ethereum, solana, base, arbitrum"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Max results (1-200)","default":50,"title":"Limit"},"description":"Max results (1-200)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Defi Protocols Api Defi Protocols Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/economic-indicators":{"get":{"summary":"Economic Indicators","description":"Federal Reserve Economic Data (FRED) — authoritative US economic indicators.\n\nKey indicators:\n- GDP: Gross Domestic Product (quarterly)\n- UNRATE: Unemployment Rate (monthly)  \n- CPIAUCSL: Consumer Price Index / inflation (monthly)\n- FEDFUNDS: Federal Funds Rate (daily)\n- T10Y2Y: Treasury yield spread / recession signal (daily)\n- INDPRO: Industrial Production (monthly)\n- PAYEMS: Nonfarm Payrolls (monthly)\n- HOUST: Housing Starts (monthly)\n- PCEC1: Personal Consumption (monthly)\n- PSAVERT: Personal Saving Rate (monthly)\n- M2SL: M2 Money Supply (weekly)\n- DEXUSEU: USD/EUR Exchange Rate (daily)","operationId":"economic_indicators_api_economic_indicators_get","parameters":[{"name":"indicators","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated indicator IDs (GDP, UNRATE, CPIAUCSL, FEDFUNDS, T10Y2Y, INDPRO, PAYEMS, HOUST, PCEC1, PSAVERT, M2SL, DEXUSEU)","default":"GDP,UNRATE,CPIAUCSL,FEDFUNDS,T10Y2Y","title":"Indicators"},"description":"Comma-separated indicator IDs (GDP, UNRATE, CPIAUCSL, FEDFUNDS, T10Y2Y, INDPRO, PAYEMS, HOUST, PCEC1, PSAVERT, M2SL, DEXUSEU)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Number of observations per indicator","default":12,"title":"Limit"},"description":"Number of observations per indicator"},{"name":"detail","in":"query","required":false,"schema":{"type":"string","description":"Get detailed data for a single indicator (overrides indicators list)","default":"","title":"Detail"},"description":"Get detailed data for a single indicator (overrides indicators list)"},{"name":"years","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":0,"description":"Years of history (0 = auto based on indicator frequency)","default":0,"title":"Years"},"description":"Years of history (0 = auto based on indicator frequency)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Economic Indicators Api Economic Indicators Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/country-metrics":{"get":{"summary":"Country Metrics","description":"World Bank country development indicators for 260+ countries.\n\nUse aliases (gdp, population, inflation) or full WB indicator IDs.\nCompare mode: pass 'compare' param with country codes for cross-country ranking.","operationId":"country_metrics_api_country_metrics_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"2-letter ISO country code (US, CN, DE, IN, BR, JP, GB, FR, etc.)","default":"US","title":"Country"},"description":"2-letter ISO country code (US, CN, DE, IN, BR, JP, GB, FR, etc.)"},{"name":"indicators","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated indicator aliases: gdp, gdp_growth, gdp_per_capita, population, pop_growth, life_expectancy, infant_mortality, inflation, unemployment, trade, gni_per_capita, literacy, energy_use, internet_users, co2_emissions","default":"","title":"Indicators"},"description":"Comma-separated indicator aliases: gdp, gdp_growth, gdp_per_capita, population, pop_growth, life_expectancy, infant_mortality, inflation, unemployment, trade, gni_per_capita, literacy, energy_use, internet_users, co2_emissions"},{"name":"years","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Years of historical data","default":10,"title":"Years"},"description":"Years of historical data"},{"name":"compare","in":"query","required":false,"schema":{"type":"string","description":"Compare countries: comma-separated codes (e.g. US,CN,DE). Compares on first indicator.","default":"","title":"Compare"},"description":"Compare countries: comma-separated codes (e.g. US,CN,DE). Compares on first indicator."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Country Metrics Api Country Metrics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/malware-feed":{"get":{"summary":"Malware Feed","description":"Live malware URL threat intelligence feed from URLhaus (abuse.ch).\n\n20,000+ malware distribution URLs updated every 5 minutes.\nFilter by status (online/offline), threat type, malware family tags.\nUse check_url to verify if a URL is a known malware distributor.","operationId":"malware_feed_api_malware_feed_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Max malware URLs to return","default":50,"title":"Limit"},"description":"Max malware URLs to return"},{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"Filter by status: 'online' or 'offline'","default":"","title":"Status"},"description":"Filter by status: 'online' or 'offline'"},{"name":"threat","in":"query","required":false,"schema":{"type":"string","description":"Filter by threat type: malware_download, phishing","default":"","title":"Threat"},"description":"Filter by threat type: malware_download, phishing"},{"name":"tag","in":"query","required":false,"schema":{"type":"string","description":"Filter by malware tag: Mozi, ClearFake, Emotet, AgentTesla, mirai","default":"","title":"Tag"},"description":"Filter by malware tag: Mozi, ClearFake, Emotet, AgentTesla, mirai"},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"Time window in hours (max 168 = 1 week)","default":24,"title":"Hours"},"description":"Time window in hours (max 168 = 1 week)"},{"name":"check_url","in":"query","required":false,"schema":{"type":"string","description":"Check if a specific URL is in the malware feed","default":"","title":"Check Url"},"description":"Check if a specific URL is in the malware feed"},{"name":"stats_only","in":"query","required":false,"schema":{"type":"boolean","description":"Return feed statistics only (no URL list)","default":false,"title":"Stats Only"},"description":"Return feed statistics only (no URL list)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Malware Feed Api Malware Feed Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ip-geo":{"get":{"summary":"Ip Geo","description":"IP geolocation: country, city, coordinates, ASN, organization, timezone.\n\nSingle IP or batch mode (up to 10). If no IP specified, returns caller's info.","operationId":"ip_geo_api_ip_geo_get","parameters":[{"name":"ip","in":"query","required":false,"schema":{"type":"string","description":"IPv4 or IPv6 address to geolocate","default":"","title":"Ip"},"description":"IPv4 or IPv6 address to geolocate"},{"name":"batch","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated IPs for batch lookup (max 10)","default":"","title":"Batch"},"description":"Comma-separated IPs for batch lookup (max 10)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ip Geo Api Ip Geo Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/geocode":{"get":{"summary":"Geocode","description":"Geocoding via OpenStreetMap/Nominatim.\n\nForward: pass 'q' with address/place name.\nReverse: pass 'lat' and 'lon' coordinates.","operationId":"geocode_api_geocode_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Address or place name for forward geocoding","default":"","title":"Q"},"description":"Address or place name for forward geocoding"},{"name":"lat","in":"query","required":false,"schema":{"type":"number","description":"Latitude for reverse geocoding","default":0.0,"title":"Lat"},"description":"Latitude for reverse geocoding"},{"name":"lon","in":"query","required":false,"schema":{"type":"number","description":"Longitude for reverse geocoding","default":0.0,"title":"Lon"},"description":"Longitude for reverse geocoding"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"description":"Max results (forward geocoding)","default":5,"title":"Limit"},"description":"Max results (forward geocoding)"},{"name":"country_codes","in":"query","required":false,"schema":{"type":"string","description":"Limit to countries (e.g. 'us,ca')","default":"","title":"Country Codes"},"description":"Limit to countries (e.g. 'us,ca')"},{"name":"zoom","in":"query","required":false,"schema":{"type":"integer","maximum":18,"minimum":0,"description":"Detail level for reverse (3=country, 10=city, 18=building)","default":18,"title":"Zoom"},"description":"Detail level for reverse (3=country, 10=city, 18=building)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Geocode Api Geocode Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/npm/package":{"get":{"summary":"Npm Package","description":"NPM Registry package intelligence — metadata, downloads, dependencies, security.\n\nReturns: version info, weekly/monthly downloads, dependency tree, maintainers,\nkeywords, repository, license, TypeScript support, and size data.\nPerfect for coding agents evaluating dependencies.","operationId":"npm_package_api_npm_package_get","parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","description":"NPM package name (e.g. 'express', '@apollo_ai/mcp-proxy')","title":"Name"},"description":"NPM package name (e.g. 'express', '@apollo_ai/mcp-proxy')"},{"name":"version","in":"query","required":false,"schema":{"type":"string","description":"Specific version or 'latest'","default":"latest","title":"Version"},"description":"Specific version or 'latest'"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Npm Package Api Npm Package Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pypi/package":{"get":{"summary":"Pypi Package","description":"PyPI package intelligence — metadata, versions, dependencies, classifiers, download URLs.\n\nReturns: version info, description, license, Python version requirements,\ndependencies, maintainer info, project URLs, and release history.\nPerfect for coding agents evaluating Python dependencies.","operationId":"pypi_package_api_pypi_package_get","parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","description":"PyPI package name (e.g. 'requests', 'fastapi', 'numpy')","title":"Name"},"description":"PyPI package name (e.g. 'requests', 'fastapi', 'numpy')"},{"name":"version","in":"query","required":false,"schema":{"type":"string","description":"Specific version (empty = latest)","default":"","title":"Version"},"description":"Specific version (empty = latest)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pypi Package Api Pypi Package Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fda/drugs":{"get":{"summary":"Fda Drugs","description":"OpenFDA drug label search — authoritative FDA drug safety data.\n\nSearch drug labels by brand name, generic name, manufacturer, active ingredient, or route.\nReturns: active ingredients, indications, warnings, dosage, manufacturer, NDC codes.\nPerfect for healthcare agents, compliance bots, and drug interaction checkers.","operationId":"fda_drugs_api_fda_drugs_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Drug name, active ingredient, or manufacturer to search","title":"Query"},"description":"Drug name, active ingredient, or manufacturer to search"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"Number of results to return","default":5,"title":"Limit"},"description":"Number of results to return"},{"name":"field","in":"query","required":false,"schema":{"type":"string","description":"Search field: brand_name, generic_name, manufacturer_name, substance_name, route","default":"brand_name","title":"Field"},"description":"Search field: brand_name, generic_name, manufacturer_name, substance_name, route"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fda Drugs Api Fda Drugs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/whois":{"get":{"summary":"Whois Lookup","description":"WHOIS/RDAP domain registration lookup — registrar, dates, nameservers, status.\n\nUses the RDAP protocol (modern WHOIS replacement) via rdap.org.\nReturns: registrar, registration/expiration dates, nameservers, domain status, contacts.\nPerfect for security agents, domain traders, due diligence, and compliance bots.","operationId":"whois_lookup_api_whois_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","description":"Domain name to look up (e.g., google.com)","title":"Domain"},"description":"Domain name to look up (e.g., google.com)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Whois Lookup Api Whois Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dns":{"get":{"summary":"Dns Lookup","description":"Comprehensive DNS intelligence for a domain or IP.\n\nReturns DNS records (A, AAAA, MX, NS, TXT, CNAME, SOA), reverse DNS,\nemail security analysis (SPF, DKIM, DMARC), nameserver info, and\na security posture score.\n\n**100% local — no external API, no auth, zero marginal cost.**\n\nAgents use this for: domain verification, email security auditing,\ninfrastructure mapping, threat intel enrichment, pre-purchase domain checks.","operationId":"dns_lookup_api_dns_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","description":"Domain to look up (e.g., 'google.com')","title":"Domain"},"description":"Domain to look up (e.g., 'google.com')"},{"name":"ip","in":"query","required":false,"schema":{"type":"string","description":"IP address for reverse DNS","title":"Ip"},"description":"IP address for reverse DNS"},{"name":"types","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated record types to query","default":"A,AAAA,MX,NS,TXT,CNAME,SOA","title":"Types"},"description":"Comma-separated record types to query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dns Lookup Api Dns Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cve":{"get":{"summary":"Cve Search","description":"Search the NVD (National Vulnerability Database) for CVEs.\n\nReturns CVE ID, description, CVSS score, severity, affected products,\nreferences, and publication dates. Essential for security agents,\nvulnerability scanners, compliance bots, and patch management tools.\n\n**Free upstream API (NIST NVD 2.0). Zero auth required. 100% margin.**","operationId":"cve_search_api_cve_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Keyword search (e.g., 'log4j', 'openssl buffer overflow')","title":"Query"},"description":"Keyword search (e.g., 'log4j', 'openssl buffer overflow')"},{"name":"cve_id","in":"query","required":false,"schema":{"type":"string","description":"Exact CVE ID (e.g., 'CVE-2021-44228')","title":"Cve Id"},"description":"Exact CVE ID (e.g., 'CVE-2021-44228')"},{"name":"severity","in":"query","required":false,"schema":{"type":"string","description":"Filter by severity: LOW, MEDIUM, HIGH, CRITICAL","title":"Severity"},"description":"Filter by severity: LOW, MEDIUM, HIGH, CRITICAL"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Max results (1-50, default 10)","default":10,"title":"Limit"},"description":"Max results (1-50, default 10)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Cve Search Api Cve Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/crypto/prices":{"get":{"summary":"Crypto Prices Live","description":"Real-time cryptocurrency prices, market caps, and 24h changes.\n\nPowered by CoinGecko (free tier). Supports 10,000+ coins.\nReturns: price, market cap, 24h change, 24h volume, ATH, circulating supply.\nPerfect for trading bots, portfolio trackers, DeFi agents, and market analysis.\n\n**Free upstream API. Zero auth required. 100% margin.**","operationId":"crypto_prices_live_api_crypto_prices_get","parameters":[{"name":"ids","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated coin IDs (e.g., 'bitcoin,ethereum,solana'). Use /api/crypto/prices?search=X to find IDs.","title":"Ids"},"description":"Comma-separated coin IDs (e.g., 'bitcoin,ethereum,solana'). Use /api/crypto/prices?search=X to find IDs."},{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"Search for a coin by name/symbol (e.g., 'BTC', 'Solana')","title":"Search"},"description":"Search for a coin by name/symbol (e.g., 'BTC', 'Solana')"},{"name":"vs_currency","in":"query","required":false,"schema":{"type":"string","description":"Target currency: usd, eur, gbp, btc, eth","default":"usd","title":"Vs Currency"},"description":"Target currency: usd, eur, gbp, btc, eth"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Crypto Prices Live Api Crypto Prices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proxy/session":{"get":{"summary":"Proxy Session Create","description":"Create a session proxy — returns a session_id for use with /api/proxy/session/fetch.\n\n$0.50/min. 5min max. 250MB cap. Geo-targeting. 500%+ markup.\nCredentials are NEVER exposed — all proxying is server-side.\nMax 5 sessions per wallet, 50 global.","operationId":"proxy_session_create_api_proxy_session_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"ISO country code","default":"US","title":"Country"},"description":"ISO country code"},{"name":"duration_min","in":"query","required":false,"schema":{"type":"integer","description":"Session duration in minutes (1-5)","default":1,"title":"Duration Min"},"description":"Session duration in minutes (1-5)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Proxy Session Create Api Proxy Session Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proxy/session/fetch":{"get":{"summary":"Proxy Session Fetch","description":"Fetch a URL using an active session proxy. No additional payment required.\n\nUse the session_id from /api/proxy/session. Session must be active (not expired).","operationId":"proxy_session_fetch_api_proxy_session_fetch_get","parameters":[{"name":"session_id","in":"query","required":false,"schema":{"type":"string","description":"Session ID from /api/proxy/session","title":"Session Id"},"description":"Session ID from /api/proxy/session"},{"name":"target_url","in":"query","required":false,"schema":{"type":"string","description":"URL to fetch through the session proxy","title":"Target Url"},"description":"URL to fetch through the session proxy"},{"name":"method","in":"query","required":false,"schema":{"type":"string","description":"HTTP method: GET, POST, HEAD","default":"GET","title":"Method"},"description":"HTTP method: GET, POST, HEAD"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Proxy Session Fetch Api Proxy Session Fetch Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/feedback":{"post":{"summary":"Feedback","description":"Community feedback — rate feeds, suggest improvements.\n\n$0.001/submission. Helps improve feed quality.","operationId":"feedback_post","parameters":[{"name":"feed","in":"query","required":false,"schema":{"type":"string","description":"Feed name (e.g., 'pain-points', 'sentiment')","default":"","title":"Feed"},"description":"Feed name (e.g., 'pain-points', 'sentiment')"},{"name":"rating","in":"query","required":false,"schema":{"type":"integer","description":"Rating 1-5","default":0,"title":"Rating"},"description":"Rating 1-5"},{"name":"comment","in":"query","required":false,"schema":{"type":"string","description":"Optional comment (max 500 chars)","default":"","title":"Comment"},"description":"Optional comment (max 500 chars)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Feedback Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Feedback","description":"Community feedback — rate feeds, suggest improvements.\n\n$0.001/submission. Helps improve feed quality.","operationId":"feedback_get","parameters":[{"name":"feed","in":"query","required":false,"schema":{"type":"string","description":"Feed name (e.g., 'pain-points', 'sentiment')","default":"","title":"Feed"},"description":"Feed name (e.g., 'pain-points', 'sentiment')"},{"name":"rating","in":"query","required":false,"schema":{"type":"integer","description":"Rating 1-5","default":0,"title":"Rating"},"description":"Rating 1-5"},{"name":"comment","in":"query","required":false,"schema":{"type":"string","description":"Optional comment (max 500 chars)","default":"","title":"Comment"},"description":"Optional comment (max 500 chars)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Feedback Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/keys/create":{"post":{"summary":"Create Api Key","description":"Internal: create a new API key. Localhost only.","operationId":"create_api_key_internal_keys_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/keys/list":{"get":{"summary":"List Api Keys","description":"Internal: list all API keys. Localhost only.","operationId":"list_api_keys_internal_keys_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/keys/{key_id}/usage":{"get":{"summary":"Key Usage","description":"Internal: get key usage. Localhost only.","operationId":"key_usage_internal_keys__key_id__usage_get","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/keys/{key_id}/add-balance":{"post":{"summary":"Add Key Balance","description":"Internal: add balance to a key. Localhost only.","operationId":"add_key_balance_internal_keys__key_id__add_balance_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/keys/stats":{"get":{"summary":"Key Stats","description":"Internal: API key system stats. Localhost only.","operationId":"key_stats_internal_keys_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/keys/signup":{"post":{"summary":"Public Key Signup","description":"Public: create an API key with seed balance. No auth required.\n\nPOST /api/keys/signup\nBody: {\"name\": \"my-agent\"} (optional: \"email\")\nReturns: {\"key\": \"ak_...\", \"balance_usd\": 0.10, ...}\n\nRate limited: 3 signups per IP per day. Seed balance: $1.00.","operationId":"public_key_signup_api_keys_signup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"get":{"summary":"Signup Info","description":"GET /api/keys/signup — creates key if ?name= provided, else returns instructions.\n\nMany agents only know GET. If they hit GET /api/keys/signup?name=my-agent,\nwe create the key immediately instead of bouncing them to POST.","operationId":"signup_info_api_keys_signup_get","parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","title":"Name"}},{"name":"email","in":"query","required":false,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/keys/balance":{"get":{"summary":"Public Key Balance","description":"Check API key balance and account info.\n\nGET /api/keys/balance?api_key=ak_YOUR_KEY\nOr header: Authorization: Bearer ak_YOUR_KEY\nReturns: balance, usage stats, account info","operationId":"public_key_balance_api_keys_balance_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"type":"string","title":"Api Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/keys/usage":{"get":{"summary":"Public Key Usage","description":"Check API key usage history.\n\nGET /api/keys/usage?api_key=ak_YOUR_KEY&limit=50\nOr header: Authorization: Bearer ak_YOUR_KEY\nReturns: recent usage entries (endpoint, price, timestamp)","operationId":"public_key_usage_api_keys_usage_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"type":"string","title":"Api Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/topup":{"get":{"summary":"Topup Page","description":"Self-serve API key balance top-up page.","operationId":"topup_page_topup_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/topup/success":{"get":{"summary":"Topup Success","operationId":"topup_success_topup_success_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/topup/cancel":{"get":{"summary":"Topup Cancel","operationId":"topup_cancel_topup_cancel_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/keys/topup":{"post":{"summary":"Create Topup Checkout","description":"Create a Stripe Checkout session for API key balance top-up.","operationId":"create_topup_checkout_api_keys_topup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/keys/stripe-webhook":{"post":{"summary":"Stripe Webhook","description":"Handle Stripe webhook events (checkout.session.completed).","operationId":"stripe_webhook_api_keys_stripe_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/trial-stats":{"get":{"summary":"Trial Stats","description":"Internal: free trial usage stats. Only accessible from localhost.","operationId":"trial_stats_internal_trial_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/security":{"get":{"summary":"Security Stats","description":"Internal: security stats — blocklist, injection strikes. Localhost only.","operationId":"security_stats_internal_security_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/block-ip":{"post":{"summary":"Block Ip Endpoint","description":"Internal: manually block an IP. Localhost only.","operationId":"block_ip_endpoint_internal_block_ip_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/unblock-ip":{"post":{"summary":"Unblock Ip Endpoint","description":"Internal: unblock an IP. Localhost only.","operationId":"unblock_ip_endpoint_internal_unblock_ip_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}