{"openapi":"3.1.0","info":{"title":"APIPICK API","description":"A collection of API tools for developers on social networks","version":"1.0.0"},"paths":{"/api/check-china-phone":{"post":{"tags":["Phone Number Validation"],"summary":"Check China Phone Number","description":"Validates a Chinese phone number and returns information about it. Requires 1 credit per call.","operationId":"check_china_phone_api_check_china_phone_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__phone__router__PhoneNumberRequest"}}}},"responses":{"200":{"description":"Phone number validated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneNumberResponse"}}}},"404":{"description":"Not found"},"400":{"description":"Invalid phone number format"},"401":{"description":"Invalid API key"},"402":{"description":"Insufficient credits"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/check-phone-telegram":{"post":{"tags":["Telegram Validation"],"summary":"Check Telegram Phone Registration","description":"Checks if a phone number is registered on Telegram. Requests are served through a global fair-use queue that keeps the aggregate lookup rate within Telegram's safe limits. If the service is busy your request waits in line (up to a bounded budget) and is served in order.\n\nSend `Accept: text/event-stream` to receive live queue-position updates as Server-Sent Events; otherwise the request blocks until it is served and returns a normal JSON body.","operationId":"check_phone_telegram_api_check_phone_telegram_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__phone_telegram__router__PhoneNumberRequest"}}}},"responses":{"200":{"description":"Phone number checked successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramPhoneResponse"}}}},"404":{"description":"Not found"},"202":{"description":"(SSE) streaming queue updates then result"},"400":{"description":"Invalid phone number format"},"401":{"description":"Invalid API key or authentication error with Telegram"},"402":{"description":"Insufficient credits"},"429":{"description":"Queue full or wait budget exceeded — retry later"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/check-email":{"post":{"tags":["Email Validation"],"summary":"Validate Email Address","description":"Validates an email address with three checks: syntax validation, MX record verification, and disposable email domain detection. Requires 1 credit per call.","operationId":"validate_email_address_api_check_email_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRequest"}}}},"responses":{"200":{"description":"Validation complete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResponse"}}}},"404":{"description":"Not found"},"400":{"description":"Missing or empty email parameter"},"401":{"description":"Invalid API key"},"402":{"description":"Insufficient credits"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/holidays":{"get":{"tags":["Public Holidays"],"summary":"Get Public Holidays","description":"Returns all public holidays for a given country and year. Uses the vacanza/python-holidays library — 100+ countries covered, fully local computation with no external dependencies. Requires 1 credit per call.","operationId":"get_public_holidays_api_holidays_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, JP)","title":"Country"},"description":"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, JP)","example":"US"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"4-digit year (defaults to current year)","title":"Year"},"description":"4-digit year (defaults to current year)","example":2026},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Holidays retrieved successfully","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"400":{"description":"Invalid country code or year"},"401":{"description":"Invalid API key"},"402":{"description":"Insufficient credits"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ip-geolocation":{"get":{"tags":["IP Geolocation"],"summary":"IP Geolocation Lookup","description":"Returns geolocation data for any public IPv4 or IPv6 address — country, region, city, latitude/longitude, timezone, and EU membership flag. If the `ip` parameter is omitted, the caller's own IP is looked up. Uses the MaxMind GeoLite2-City database for fully local computation. Requires 1 credit per call.","operationId":"get_ip_geolocation_api_ip_geolocation_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ip","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Public IPv4 or IPv6 address to look up. Omit to look up the caller's own IP address.","title":"Ip"},"description":"Public IPv4 or IPv6 address to look up. Omit to look up the caller's own IP address.","example":"8.8.8.8"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Geolocation data retrieved successfully","content":{"application/json":{"schema":{}}}},"404":{"description":"No geolocation data found for this IP"},"400":{"description":"Invalid or private/reserved IP address"},"401":{"description":"Invalid API key"},"402":{"description":"Insufficient credits"},"503":{"description":"Geolocation database unavailable (check env vars)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/company/facts":{"get":{"tags":["Company Facts"],"summary":"Get Company Facts","description":"Returns comprehensive public company information by stock ticker or SEC CIK number. Data sourced from SEC EDGAR (free). Requires 2 credits per call.","operationId":"get_company_facts_endpoint_api_company_facts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticker","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Stock ticker symbol (e.g. AAPL, MSFT). Use ticker OR cik, not both.","title":"Ticker"},"description":"Stock ticker symbol (e.g. AAPL, MSFT). Use ticker OR cik, not both.","example":"AAPL"},{"name":"cik","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC Central Index Key, with or without leading zeros (e.g. 0000320193).","title":"Cik"},"description":"SEC Central Index Key, with or without leading zeros (e.g. 0000320193).","example":"0000320193"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Company facts retrieved successfully","content":{"application/json":{"schema":{}}}},"404":{"description":"Company not found"},"400":{"description":"Invalid or missing parameters"},"401":{"description":"Invalid API key"},"402":{"description":"Insufficient credits"},"502":{"description":"Upstream SEC EDGAR error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/hello-protected":{"get":{"summary":"Hello Protected","operationId":"hello_protected_api_hello_protected_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/search/web":{"post":{"operationId":"searchWeb","summary":"Real-time Web Search","description":"Real-time semantic web search across the public internet. Returns ranked titles, URLs, and clean snippets pre-shaped for LLM consumption. Designed for AI-agent tool calling and RAG.\n\n**Cost:** 15 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Web Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":10,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. US, GB)"},"start_date":{"type":"string","description":"ISO date YYYY-MM-DD (inclusive)"},"end_date":{"type":"string","description":"ISO date YYYY-MM-DD (inclusive)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/news":{"post":{"operationId":"searchNews","summary":"Real-time News Search","description":"Real-time news search across major outlets with country and date-range filters. Built for morning briefings, market-news agents, and time-sensitive RAG.\n\n**Cost:** 15 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["News Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":10,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. US, GB)"},"start_date":{"type":"string","description":"ISO date YYYY-MM-DD (inclusive)"},"end_date":{"type":"string","description":"ISO date YYYY-MM-DD (inclusive)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/extract":{"post":{"operationId":"extractUrls","summary":"URL Content Extraction","description":"Extract clean readable content from one or more URLs (max 25 per call). Removes navigation, ads, and boilerplate; returns markdown-flavoured text ready for LLM ingestion.\n\n**Cost:** 2 credits per URL. Credits are only deducted on HTTP 200 responses.","tags":["URL Extract"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":25,"description":"1–25 http(s) URLs"},"extract_effort":{"type":"string","enum":["auto","low","high"],"default":"auto"},"response_length":{"type":"string","enum":["short","medium","long"]}},"required":["urls"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"},"status":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/academic":{"post":{"operationId":"searchAcademic","summary":"Academic Search (arXiv, PubMed, bioRxiv, medRxiv)","description":"Semantic search across peer-reviewed papers and pre-prints. Built for AI-driven literature review, RAG over scientific corpora, and citation extraction.\n\n**Cost:** 5 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Academic Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/clinical":{"post":{"operationId":"searchClinical","summary":"Clinical Search (Trials, FDA Labels, ChEMBL, DrugBank)","description":"Semantic search across ClinicalTrials.gov, FDA drug labels, ChEMBL bioactivity, and DrugBank pharmacology. For medical research and AI-driven clinical decision-support workflows. Output is informational, not medical advice.\n\n**Cost:** 30 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Clinical Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/sec":{"post":{"operationId":"searchSec","summary":"SEC Filings Search (EDGAR, Earnings Transcripts)","description":"Semantic search over SEC EDGAR filings (10-K, 10-Q, 8-K), US earnings call transcripts, and equity statistics. Built for AI-driven due diligence and financial RAG pipelines.\n\n**Cost:** 120 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["SEC Filings Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/patents":{"post":{"operationId":"searchPatents","summary":"Patent Search (USPTO, EPO, WIPO, JPO, KIPO, CNIPA)","description":"Semantic search across global patent filings. Built for prior-art research, IP landscaping, and AI-driven competitive intelligence.\n\n**Cost:** 80 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Patent Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/prediction-markets":{"post":{"operationId":"searchPredictionMarkets","summary":"Prediction Markets Search (Polymarket, Kalshi)","description":"Semantic search over Polymarket and Kalshi prediction-market contracts on politics, economics, sports, and current events. Built for crowd-forecast retrieval and probability-grounded LLM answers.\n\n**Cost:** 50 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Prediction Markets Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/uk-legal":{"post":{"operationId":"searchUkLegal","summary":"UK Legal Search (Case Law, Legislation)","description":"Semantic search across UK case law and primary legislation. Built for legal research, compliance review, and statutory interpretation. Output is informational retrieval only — not legal advice.\n\n**Cost:** 60 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["UK Legal Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/cybersecurity":{"post":{"operationId":"searchCybersecurity","summary":"Cybersecurity Search (CVE, CISA KEV, EPSS, MITRE ATT&CK)","description":"Semantic search across NVD CVE records, CISA Known Exploited Vulnerabilities, EPSS exploit-probability scores, and MITRE ATT&CK techniques. Built for vulnerability triage, threat intelligence, and AI-driven security operations workflows.\n\n**Cost:** 10 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Cybersecurity Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/markets":{"post":{"operationId":"searchMarkets","summary":"Markets Search (Stocks, Crypto, Forex, ETFs, Commodities)","description":"Semantic search across global and US equities, cryptocurrencies, forex pairs, ETFs, mutual funds, commodities, and US market movers. Built for price lookups, market-data retrieval, and AI-driven trading and finance workflows.\n\n**Cost:** 120 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Markets Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/economic":{"post":{"operationId":"searchEconomic","summary":"Economic Data Search (FRED, BLS, World Bank, IMF)","description":"Semantic search across FRED, US Bureau of Labor Statistics, World Bank indicators, IMF macro data, US federal spending, and German labour statistics. Built for macroeconomic research and AI-driven economic analysis.\n\n**Cost:** 50 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Economic Data Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/financials":{"post":{"operationId":"searchFinancials","summary":"Financials Search (Balance Sheet, Income, Cash Flow)","description":"Semantic search across US public-company balance sheets, income statements, cash flow statements, dividend history, and insider transactions. Built for fundamental analysis, due diligence, and AI-driven investment research workflows.\n\n**Cost:** 200 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Financials Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/chemistry":{"post":{"operationId":"searchChemistry","summary":"Chemistry Search (ChEMBL, PubChem, Open Targets)","description":"Semantic search across ChEMBL bioactivity data, PubChem chemical structures and properties, and Open Targets target-disease associations. Built for drug discovery, cheminformatics, and AI-driven biomedical research workflows.\n\n**Cost:** 30 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Chemistry Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/health":{"post":{"operationId":"searchHealth","summary":"Health Data Search (WHO, NIH, openFDA)","description":"Semantic search across WHO global health statistics, NIH research grants, and openFDA drug adverse-event reports. Built for public-health research, grant discovery, and pharmacovigilance. Output is informational retrieval only — not medical advice.\n\n**Cost:** 30 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Health Data Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/politics":{"post":{"operationId":"searchPolitics","summary":"Politics Search (UK Parliament / Hansard)","description":"Semantic search across UK Parliament debates, written questions, and member activity (Hansard). Built for civic-tech tools, legislative monitoring, policy research, and AI-driven political analysis workflows.\n\n**Cost:** 40 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Politics Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/wiley":{"post":{"operationId":"searchWiley","summary":"Wiley Finance Search (licensed journals + books)","description":"Semantic search across licensed Wiley finance literature — peer-reviewed finance journals and finance textbooks. Built for academic-grade financial research, literature review, and AI-driven investment and economics workflows.\n\n**Cost:** 300 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["Wiley Finance Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/ap-news":{"post":{"operationId":"searchApNews","summary":"AP News Search (full-text wire news)","description":"Search Associated Press wire news as full article text over a rolling ~30-day window, with start_date/end_date for as-of queries. Built for current-events grounding and news monitoring.\n\n**Cost:** 120 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["AP News Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/search/mica":{"post":{"operationId":"searchMica","summary":"EU MiCA Regulation Search","description":"Search the EU Markets in Crypto-Assets (MiCA) regulatory corpus: Level 1 regulation, Level 2 technical standards, ESMA/EBA guidelines, and national implementing laws across the EU/EEA. Built for crypto compliance research and regulatory assistants.\n\n**Cost:** 120 credits per call. Credits are only deducted on HTTP 200 responses.","tags":["MiCA Regulation Search"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language search query"},"max_num_results":{"type":"integer","minimum":1,"maximum":5,"default":5},"relevance_threshold":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum relevance score (0–1)"}},"required":["query"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/research":{"post":{"operationId":"startResearch","summary":"Dataset Research (async)","description":"Start an async research task over a dataset collection that search cannot reach: vehicle-safety (NHTSA), short-sellers, or sanctions (research aid, not compliance screening). Returns 202 with task_id; poll GET /api/research/tasks/{task_id}.\n\n**Cost:** 100 credits per completed task, charged once on the poll that returns the answer. Polling and failed tasks are free.","tags":["Dataset Research"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","maxLength":2000},"collection":{"type":"string","enum":["vehicle-safety","short-sellers","sanctions"]}},"required":["query","collection"]}}}},"responses":{"202":{"description":"Task created; poll poll_url"},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/research/tasks/{task_id}":{"get":{"operationId":"pollResearch","summary":"Poll a Dataset Research task","description":"Returns the task status while it runs, then the Markdown answer and sources once completed. The first completed poll charges the task's credits; later polls return credits_used = 0.","tags":["Dataset Research"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Task status, or the completed answer"},"404":{"description":"Task not found for this account"},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/answer":{"post":{"operationId":"answer","summary":"Cited Answer","description":"Answer a focused question with a short Markdown answer and numbered citations, researched live across the web, news, and specialist datasets. Synchronous: typically 15-60 seconds.\n\n**Cost:** 100 credits per answer. Failed or timed-out answers (HTTP 502/504) are not charged.","tags":["Cited Answer"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","maxLength":2000}},"required":["query"]}}}},"responses":{"200":{"description":"Answer with sources"},"502":{"description":"Answer could not be generated — no credits deducted"},"504":{"description":"Answer timed out — no credits deducted"},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/logos":{"get":{"operationId":"searchLogos","summary":"Logo Search","description":"Search the built-in SVG logo library by title or category. Returns normalized metadata with categories, brand URLs, and asset URLs for logo, light, dark, and wordmark variants. Assets are served from API Pick infrastructure with no runtime third-party dependency.\n\n**Cost:** 1 credit per search; 1 credit per source fetch. Credits are only deducted on HTTP 200 responses.","tags":["Logo Search"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"search","in":"query","description":"Brand or category text to search","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Max results (default 12)","schema":{"type":"integer","default":12}},{"name":"category","in":"query","description":"Filter by logo category","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"category":{"type":"array","items":{"type":"string"}},"url":{"type":"string"},"files":{"type":"object"}}}},"result_count":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/scan-dependencies":{"post":{"operationId":"scanDependencies","summary":"Dependency Vulnerability Scan","description":"Check up to 50 open-source packages against the OSV.dev vulnerability database. Returns per-package advisories with CVE aliases, a CVSS v3.1 base score computed from the advisory's vector, CWE ids, and the versions that fix each issue, plus a rollup by severity.\n\n**Cost:** 5 credits per call regardless of package count. Credits are only deducted on HTTP 2xx responses.","tags":["Dependency Scan"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["packages"],"properties":{"packages":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","required":["ecosystem","name","version"],"properties":{"ecosystem":{"type":"string","example":"npm"},"name":{"type":"string","example":"lodash"},"version":{"type":"string","example":"4.17.15"}}}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"summary":{"type":"object"},"results":{"type":"array","items":{"type":"object"}},"source":{"type":"string"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/whois":{"get":{"operationId":"whoisLookup","summary":"WHOIS / RDAP Lookup","description":"Registration data for a domain name, IP address, or AS number via RDAP, the IETF successor to WHOIS. Returns registrar, nameservers, DNSSEC status, registration and expiry dates, EPP status codes, and contacts flattened from jCard. The query type is detected from the input.\n\nAn unregistered object returns HTTP 200 with `found: false` — that is a valid answer and is charged normally.\n\n**Cost:** 2 credits per call. Credits are only deducted on HTTP 2xx responses.","tags":["WHOIS / RDAP"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"query","in":"query","required":true,"description":"Domain name, IPv4/IPv6 address, or AS number (e.g. github.com, 8.8.8.8, AS13335)","schema":{"type":"string","example":"github.com"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"type":{"type":"string","enum":["domain","ip","autnum"]},"found":{"type":"boolean"},"registrar":{"type":"string","nullable":true},"registered_at":{"type":"string","nullable":true},"expires_at":{"type":"string","nullable":true},"status":{"type":"array","items":{"type":"string"}},"nameservers":{"type":"array","items":{"type":"string"}},"dnssec":{"type":"boolean","nullable":true},"contacts":{"type":"array","items":{"type":"object"}},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/validate-vat":{"get":{"operationId":"validateEuVat","summary":"EU VAT Validation","description":"Validate an EU VAT number against VIES, the European Commission's official registry. Returns whether the number is registered plus the trader's legal name and address where the member state discloses them — Germany and Spain withhold these by policy, flagged as `name_disclosed: false`.\n\nA member-state outage returns HTTP 503 and is not charged.\n\n**Cost:** 3 credits per call. Credits are only deducted on HTTP 2xx responses.","tags":["EU VAT"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"vat_number","in":"query","required":true,"description":"Full VAT number including the member-state prefix. Greece files as EL, not GR; Northern Ireland is XI.","schema":{"type":"string","example":"IE6388047V"}},{"name":"country","in":"query","description":"Member-state code, if the number is supplied without its prefix","schema":{"type":"string","example":"IE"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"vat_number":{"type":"string"},"country_code":{"type":"string"},"number":{"type":"string"},"valid":{"type":"boolean"},"name":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"name_disclosed":{"type":"boolean"},"request_date":{"type":"string","nullable":true},"consultation_number":{"type":"string","nullable":true},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}},"/api/lei-lookup":{"get":{"operationId":"leiLookup","summary":"LEI Entity Lookup","description":"Resolve a legal entity through the GLEIF Legal Entity Identifier register, by LEI code or by legal name. Returns official legal name, addresses, jurisdiction, legal form, national company-register number, BIC codes, and registration status. Pass `include_relationships=true` with `lei` to also get direct parent, ultimate parent, and direct-subsidiary count.\n\nProvide either `lei` or `name`, not both.\n\n**Cost:** 3 credits per call. Credits are only deducted on HTTP 2xx responses.","tags":["LEI Lookup"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"lei","in":"query","description":"20-character LEI code (ISO 17442)","schema":{"type":"string","example":"HWUPKR0MPOU8FGXBT394"}},{"name":"name","in":"query","description":"Legal entity name to search for","schema":{"type":"string","example":"Tesla, Inc."}},{"name":"country","in":"query","description":"ISO 3166-1 alpha-2 code narrowing a name search","schema":{"type":"string","example":"US"}},{"name":"limit","in":"query","description":"Max records for a name search (1-10, default 5)","schema":{"type":"integer","default":5}},{"name":"include_relationships","in":"query","description":"With `lei`, also return ownership links","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["lei","search"]},"found":{"type":"boolean"},"record":{"type":"object","nullable":true},"records":{"type":"array","items":{"type":"object"}},"relationships":{"type":"object"},"total_matches":{"type":"integer"},"credits_used":{"type":"integer"},"remaining_credits":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key — no credits deducted"},"402":{"description":"Insufficient credits"},"422":{"description":"Request body validation error — no credits deducted"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error — no credits deducted"}}}}},"components":{"schemas":{"EmailRequest":{"properties":{"email":{"type":"string","title":"Email","description":"The email address to validate","example":"user@example.com"}},"type":"object","required":["email"],"title":"EmailRequest"},"EmailResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the request was successful"},"code":{"type":"integer","title":"Code","description":"HTTP status code"},"message":{"type":"string","title":"Message","description":"Response message"},"data":{"type":"object","title":"Data","description":"Validation result"}},"type":"object","required":["success","code","message"],"title":"EmailResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PhoneNumberResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the request was successful"},"code":{"type":"integer","title":"Code","description":"HTTP status code"},"message":{"type":"string","title":"Message","description":"Response message"},"data":{"type":"object","title":"Data","description":"Phone number information if available"}},"type":"object","required":["success","code","message"],"title":"PhoneNumberResponse"},"TelegramPhoneResponse":{"properties":{"registered":{"type":"boolean","title":"Registered","description":"Whether the phone number is registered on Telegram"},"code":{"type":"integer","title":"Code","description":"HTTP status code"},"message":{"type":"string","title":"Message","description":"Response message"},"attempts":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Attempts","description":"List of attempts made to check the number"},"dc_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Dc Id","description":"Telegram data center ID where the account is registered"}},"type":"object","required":["registered","code","message"],"title":"TelegramPhoneResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"api__phone__router__PhoneNumberRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number","description":"The phone number to check in international format (e.g., 13800138000)","example":"13800138000"}},"type":"object","required":["phone_number"],"title":"PhoneNumberRequest"},"api__phone_telegram__router__PhoneNumberRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number","description":"The phone number to check in international format with country code (e.g., +12025550123)","example":"+12025550123"}},"type":"object","required":["phone_number"],"title":"PhoneNumberRequest"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"},"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Send your API key in the `x-api-key` header (format: `pk_…`). Create one at https://www.apipick.com/dashboard/api-keys."}}}}