uk
Feedback
𝘼𝙗𝙝𝙞𝙜𝙮𝙖𝙣 𝙏𝙤𝙤𝙡𝙨 𝙇𝙖𝙗

𝘼𝙗𝙝𝙞𝙜𝙮𝙖𝙣 𝙏𝙤𝙤𝙡𝙨 𝙇𝙖𝙗

Відкрити в Telegram

Personal research tools • APIs • bots Updates • demos • limited access drops Not for illegal use

Показати більше
Країна не вказанаКатегорія не вказана
1 043
Підписники
+4924 години
+3147 днів
+64330 днів
Архів дописів
Repost from N/a
flask>=3.0 phonenumbers>=8.13 pycountry>=23.12 requests>=2.31 beautifulsoup4>=4.12 lxml>=5.0

Repost from N/a
@app.get("/phone") def phone_info(): """ GET /phone?number=+919876543210 Returns full phone number intelligence as JSON. """ raw = request.args.get("number", "").strip() if not raw: return jsonify({"error": "Missing 'number' query parameter. Example: /phone?number=+919876543210"}), 400 result = {"query": raw} # 1. Parse & validate parsed_info = parse_and_validate(raw) if not parsed_info["valid"]: result["valid"] = False result["possible"] = parsed_info.get("possible", False) result["error"] = parsed_info.get("error", "Invalid phone number") return jsonify(result), 422 parsed = parsed_info["parsed"] result["valid"] = True result["possible"] = parsed_info["possible"] # 2. Formats result["formats"] = get_formats(parsed) e164 = result["formats"]["e164"] # 3. Line type result.update(get_line_type(parsed)) # 4. Carrier result.update(get_carrier_info(parsed)) # 5. Country info result["country"] = get_country_info(parsed) # 6. Geo + timezone result["geo"] = get_geo_info(parsed) # 7. Spam checks result["spam_check"] = { "spamcalls": check_spam_spamcalls(e164), "shouldianswer": check_spam_shouldianswer(e164), } return jsonify(result), 200 # ── Entry point ─────────────────────────────────────────────────────────────── if name == "main": app.run(debug=True, port=5000)

Repost from N/a
try: country = pycountry.countries.get(alpha_2=region_code) if country: info["country_name"] = country.name info["official_name"] = getattr(country, "official_name", None) info["alpha_3"] = country.alpha_3 info["numeric_code"] = country.numeric except Exception: pass return info def get_line_type(parsed) -> dict: """Classify the number type (mobile, fixed, VoIP, etc.).""" ntype = number_type(parsed) return {"line_type": LINE_TYPE_MAP.get(ntype, "Unknown")} def check_spam_spamcalls(e164: str) -> dict: """ Scrape SpamCalls.net for community spam/scam reports. Free public site, no key required. """ # Strip leading + for URL digits = e164.lstrip("+") url = f"https://spamcalls.net/en/number/{digits}" try: resp = requests.get(url, headers=BROWSER_HEADERS, timeout=12) if resp.status_code != 200: return {"error": f"SpamCalls returned HTTP {resp.status_code}"} soup = BeautifulSoup(resp.text, "lxml") result = {"source": url} # Rating / danger level danger = soup.select_one(".danger-level, .rating-label, [class*='danger'], [class*='rating']") if danger: result["danger_level"] = danger.get_text(strip=True) # Report count count_el = soup.find(string=re.compile(r"\d+\s*(report|complaint)", re.I)) if count_el: m = re.search(r"(\d+)", count_el) result["report_count"] = int(m.group(1)) if m else None # Page title often has "spam" or "safe" title = soup.title.string if soup.title else "" result["page_title"] = title.strip() if title else None # Caller type label caller_type = soup.select_one(".caller-type, [class*='caller-type'], [class*='type-label']") if caller_type: result["caller_type"] = caller_type.get_text(strip=True) # Latest comments / reports comments = [] for el in soup.select(".comment-text, .report-text, [class*='comment'], [class*='report-body']")[:5]: text = el.get_text(strip=True) if text: comments.append(text) if comments: result["recent_reports"] = comments return result except requests.exceptions.Timeout: return {"error": "SpamCalls request timed out"} except Exception as e: return {"error": str(e)} def check_spam_shouldianswer(e164: str) -> dict: """ Scrape ShouldIAnswer.com for spam reports. Another free public lookup — good secondary source. """ digits = e164.lstrip("+") url = f"https://www.shouldianswer.com/phone-number/{digits}" try: resp = requests.get(url, headers=BROWSER_HEADERS, timeout=12) if resp.status_code != 200: return {"error": f"ShouldIAnswer returned HTTP {resp.status_code}"} soup = BeautifulSoup(resp.text, "lxml") result = {"source": url} # Overall rating rating = soup.select_one(".overall-rating, .rating, [class*='rating']") if rating: result["rating"] = rating.get_text(strip=True) # Number of ratings/opinions opinions = soup.find(string=re.compile(r"\d+\s*(opinion|rating|report)", re.I)) if opinions: m = re.search(r"(\d+)", opinions) result["opinion_count"] = int(m.group(1)) if m else None # Activity type activity = soup.select_one("[class*='activity'], [class*='type']") if activity: result["activity_type"] = activity.get_text(strip=True) return result except requests.exceptions.Timeout: return {"error": "ShouldIAnswer request timed out"} except Exception as e: return {"error": str(e)} # ── Route ─────────────────────────────────────────────────────────────────────

Repost from N/a
""" Phone Number Info API - Flask ───────────────────────────── GET /phone?number=+919876543210 Checks (all free, no paid API keys): - Parse & validate : phonenumbers (Google libphonenumber) - Carrier detection : phonenumbers.carrier - Timezone : phonenumbers.timezone - Geocoding / region : phonenumbers.geocoder - Line type : phonenumbers.number_type - Country info : pycountry - Format variants : E164, national, international, RFC3966 - Spam / scam reports : SpamCalls.net public search (scrape) - Reverse lookup hint : sync.me public search (scrape) Install: pip install flask phonenumbers pycountry requests beautifulsoup4 lxml """ import re import phonenumbers from phonenumbers import ( carrier, geocoder, timezone, number_type, PhoneNumberType, format_number, PhoneNumberFormat, is_valid_number, is_possible_number, parse as ph_parse, NumberParseException, ) import pycountry import requests from bs4 import BeautifulSoup from flask import Flask, jsonify, request app = Flask(name) BROWSER_HEADERS = { "User-Agent": ( "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " "AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/124.0.0.0 Safari/537.36" ), "Accept-Language": "en-US,en;q=0.9", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", } # ── Line type mapping ───────────────────────────────────────────────────────── LINE_TYPE_MAP = { PhoneNumberType.FIXED_LINE: "Fixed Line", PhoneNumberType.MOBILE: "Mobile", PhoneNumberType.FIXED_LINE_OR_MOBILE: "Fixed Line or Mobile", PhoneNumberType.TOLL_FREE: "Toll Free", PhoneNumberType.PREMIUM_RATE: "Premium Rate", PhoneNumberType.SHARED_COST: "Shared Cost", PhoneNumberType.VOIP: "VoIP", PhoneNumberType.PERSONAL_NUMBER: "Personal Number", PhoneNumberType.PAGER: "Pager", PhoneNumberType.UAN: "UAN", PhoneNumberType.VOICEMAIL: "Voicemail", PhoneNumberType.UNKNOWN: "Unknown", } # ── Helpers ─────────────────────────────────────────────────────────────────── def parse_and_validate(number: str) -> dict: """Parse number with phonenumbers (Google libphonenumber).""" try: # Try with explicit +, then fallback to no region if not number.startswith("+"): number = "+" + number parsed = ph_parse(number, None) except NumberParseException as e: return {"valid": False, "error": str(e), "parsed": None} valid = is_valid_number(parsed) possible = is_possible_number(parsed) return { "valid": valid, "possible": possible, "parsed": parsed, } def get_formats(parsed) -> dict: """All standard format variants.""" return { "e164": format_number(parsed, PhoneNumberFormat.E164), "international": format_number(parsed, PhoneNumberFormat.INTERNATIONAL), "national": format_number(parsed, PhoneNumberFormat.NATIONAL), "rfc3966": format_number(parsed, PhoneNumberFormat.RFC3966), } def get_carrier_info(parsed) -> dict: """Carrier name (works best for mobile numbers).""" name = carrier.name_for_number(parsed, "en") return {"carrier": name if name else None} def get_geo_info(parsed) -> dict: """Region / city geocode and timezone.""" region = geocoder.description_for_number(parsed, "en") zones = list(timezone.time_zones_for_number(parsed)) return { "region": region if region else None, "timezones": zones, } def get_country_info(parsed) -> dict: """Full country details via pycountry.""" region_code = phonenumbers.region_code_for_number(parsed) country_code = parsed.country_code info = { "country_code_calling": f"+{country_code}", "region_code": region_code, }

Repost from N/a
GET http://localhost:5000/email?email=user@gmail.com

Repost from N/a
flask>=3.0 email-validator>=2.1 dnspython>=2.6 python-whois>=0.9 requests>=2.31

Repost from N/a
# 3. SMTP reachability (use first / highest-priority MX) if mx["found"] and mx["records"]: result["smtp_check"] = check_smtp(email, mx["records"][0]["host"]) else: result["smtp_check"] = {"reachable": False, "error": "No MX records found"} # 4. Disposable check result["disposable"] = check_disposable(domain) # 5. WHOIS result["whois"] = get_whois_info(domain) # 6. Gravatar result["gravatar"] = get_gravatar(email) # 7. Breach check (HIBP) result["breaches"] = check_breaches(email) return jsonify(result), 200 # ── Entry point ─────────────────────────────────────────────────────────────── if name == "main": app.run(debug=True, port=5000)

Repost from N/a
return { "registrar": _first(w.registrar), "creation_date": str(_first(w.creation_date)) if w.creation_date else None, "expiration_date": str(_first(w.expiration_date)) if w.expiration_date else None, "country": _first(w.country), "org": _first(w.org), } except Exception as e: return {"error": str(e)} def get_gravatar(email: str) -> dict: """Return Gravatar URL for the email (based on MD5 hash).""" hashed = hashlib.md5(email.strip().lower().encode()).hexdigest() url = f"https://www.gravatar.com/avatar/{hashed}?d=404&s=200" try: resp = requests.head(url, timeout=5) has_avatar = resp.status_code == 200 except Exception: has_avatar = None return { "hash": hashed, "url": f"https://www.gravatar.com/avatar/{hashed}?s=200", "has_avatar": has_avatar, } def check_breaches(email: str) -> dict: """ Check HaveIBeenPwned using the free unifiedsearch web endpoint. No API key required. URL: https://haveibeenpwned.com/unifiedsearch/{email} Returns breach and paste data as provided by HIBP. """ encoded = requests.utils.quote(email, safe="") url = f"https://haveibeenpwned.com/unifiedsearch/{encoded}" headers = { # Mimic a real browser to avoid bot-blocking "User-Agent": ( "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " "AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/124.0.0.0 Safari/537.36" ), "Accept": "application/json", "Referer": "https://haveibeenpwned.com/", } try: resp = requests.get(url, headers=headers, timeout=15) if resp.status_code == 404: # HIBP returns 404 when no breaches found return {"breached": False, "breach_count": 0, "paste_count": 0} if resp.status_code != 200: return {"error": f"HIBP returned HTTP {resp.status_code}"} data = resp.json() breaches = data.get("Breaches") or [] pastes = data.get("Pastes") or [] return { "breached": len(breaches) > 0, "breach_count": len(breaches), "paste_count": len(pastes), "breaches": [ { "name": b.get("Name"), "domain": b.get("Domain"), "breach_date": b.get("BreachDate"), "pwn_count": b.get("PwnCount"), "data_classes": b.get("DataClasses", []), "is_verified": b.get("IsVerified"), "is_sensitive": b.get("IsSensitive"), } for b in breaches ], "pastes": [ { "source": p.get("Source"), "date": p.get("Date"), "count": p.get("EmailCount"), } for p in pastes ], } except requests.exceptions.Timeout: return {"error": "HIBP request timed out"} except Exception as e: return {"error": str(e)} # ── Route ──────────────────────────────────────────────────────────────────── @app.get("/email") def email_info(): """ GET /email?email=user@example.com Returns a JSON object with full email intelligence. """ raw_email = request.args.get("email", "").strip() if not raw_email: return jsonify({"error": "Missing 'email' query parameter"}), 400 result = {"query": raw_email} # 1. Syntax check syntax = check_syntax(raw_email) result["syntax"] = syntax if not syntax["valid"]: return jsonify(result), 422 email = syntax["normalized"] domain = syntax["domain"] result["email"] = email result["domain"] = domain # 2. MX records mx = get_mx_records(domain) result["mx_records"] = mx

Repost from N/a
""" Email Info API - Flask GET /email?email=user@example.com Returns info about an email address using free services & Python modules: - Syntax validation (email-validator) - MX record lookup (dnspython) - SMTP reachability check (smtplib) - Disposable email detection (disposable-email-domains list) - Domain WHOIS info (python-whois) - Gravatar avatar hash (hashlib) - Email breach check via HaveIBeenPwned public API (requests) Install dependencies: pip install flask email-validator dnspython python-whois requests """ import hashlib import smtplib import socket import re import dns.resolver import whois import requests from flask import Flask, jsonify, request from email_validator import validate_email, EmailNotValidError app = Flask(name) # ── Disposable domain list (fetched once from a free public source) ────────── DISPOSABLE_DOMAINS: set[str] = set() def load_disposable_domains(): url = ( "https://raw.githubusercontent.com/disposable-email-domains/" "disposable-email-domains/master/disposable_email_blocklist.conf" ) try: resp = requests.get(url, timeout=10) if resp.ok: DISPOSABLE_DOMAINS.update( line.strip().lower() for line in resp.text.splitlines() if line.strip() and not line.startswith("#") ) except Exception: pass # fail silently; disposable check will just return unknown load_disposable_domains() # ── Helpers ────────────────────────────────────────────────────────────────── def check_syntax(email: str) -> dict: """Validate email syntax and normalise it.""" try: info = validate_email(email, check_deliverability=False) return { "valid": True, "normalized": info.normalized, "local_part": info.local_part, "domain": info.domain, } except EmailNotValidError as e: return {"valid": False, "error": str(e)} def get_mx_records(domain: str) -> dict: """Look up MX records for the domain.""" try: answers = dns.resolver.resolve(domain, "MX") records = sorted( [{"priority": r.preference, "host": str(r.exchange).rstrip(".")} for r in answers], key=lambda x: x["priority"], ) return {"found": True, "records": records} except (dns.resolver.NXDOMAIN, dns.resolver.NoAnswer, dns.exception.DNSException) as e: return {"found": False, "error": str(e)} def check_smtp(email: str, mx_host: str) -> dict: """Try to verify the mailbox exists via SMTP RCPT TO (no mail sent).""" try: with smtplib.SMTP(timeout=10) as smtp: smtp.connect(mx_host, 25) smtp.helo("check.example.com") smtp.mail("check@example.com") code, msg = smtp.rcpt(email) return { "reachable": code == 250, "smtp_code": code, "smtp_message": msg.decode(errors="replace"), } except smtplib.SMTPConnectError as e: return {"reachable": None, "error": f"SMTP connect failed: {e}"} except smtplib.SMTPServerDisconnected as e: return {"reachable": None, "error": f"Server disconnected: {e}"} except (socket.timeout, OSError) as e: return {"reachable": None, "error": f"Network error: {e}"} except Exception as e: return {"reachable": None, "error": str(e)} def check_disposable(domain: str) -> dict: """Check if domain is a known disposable / temporary email provider.""" is_disposable = domain.lower() in DISPOSABLE_DOMAINS return { "is_disposable": is_disposable, "database_loaded": len(DISPOSABLE_DOMAINS) > 0, } def get_whois_info(domain: str) -> dict: """Fetch WHOIS data for the domain (free, no key required).""" try: w = whois.whois(domain) def _first(val): return val[0] if isinstance(val, list) else val

Repost from N/a
+2
requirements.txt0.00 KB

Repost from N/a
How to make an api Make api using ai Test in phone Host in render.com Ping url

Paid channel pr available hai 😁 Joining price 700₹ permanent Message here @ykguycyber
Paid channel pr available hai 😁 Joining price 700₹ permanent Message here @ykguycyber

React something big is coming

🔥 REAL TEMP MAIL BOT Asli temporary email milta hai. OTP / verification ke liye use karo. Steps: 1. Bot start 2. Channels join + Verify 3. Generate Email 4. Check Inbox No fake • No referral • Free @GET_FREE_TEMP_MAIL_BOT @GET_FREE_TEMP_MAIL_BOT @GET_FREE_TEMP_MAIL_BOT @GET_FREE_TEMP_MAIL_BOT

🔥 FREE VIRTUAL NUMBER BOT Temporary numbers from India, USA, UK, UAE & more. Kaise use kare: 1. Bot start karo 2. Channels join + Verify 3. Country select karo 4. 5 friends refer karke OTP unlock lo Bot 👉 @GetFreeVirtualNumber_Bot

🚨 FREE VPS BOT LIVE Ab free VPS claim kar sakte ho. ✅ Features: • Free VPS allocation • Force join system • 5 referral = full unlock • Clean professional interface Steps: 1. @Indian_Free_VPS_bot pe jao 2. /start dabao 3. Channels join + Verify 4. Referral link share karke unlock karo Link 👉 @Indian_Free_VPS_bot

🚨 NEW TOOL DROPPED Instagram se Phone Number nikaalne wala bot aa gaya. 🔥 Features: • Instagram → Number lookup • Force join system • Referral based unlock • 5 referrals = Unlimited searches Kaise start kare: 1. @INSTA_TO_PHONE_OSINT_BOT pe jao 2. /start dabao 3. Saare channels join karo 4. Verify karo 5. Referral link share karke unlock lo Link 👉 @INSTA_TO_PHONE_OSINT_BOT

NEW SERVICE ADDED
1. Aadhaar To All Data Info ₹30
2. Aadhaar to Name ₹5
3. Aadhaar to Father Name ₹5
4. Aadhaar to Address ₹15
5. Aadhaar To Mobile ₹15
6. Aadhaar To Ration Card ₹20
7. Aadhaar PAN Link Check ₹5
8. Aadhaar to NPCI Bank Link Check ₹15
9. Aadhaar To Pan Find ₹30
10. PAN To Name & DOB Info ₹15
11. PAN To GST ₹10
12. PAN to Aadhaar ₹70
13. Vehicle To Mobile Number ₹25
14. Vehicle Info Server 1 ₹10
15. Vehicle RC Info 2 ₹15
16. Driving License Info ₹15
17. DL 2 Number ₹30
18. Passport Info ₹20
19. Vehicle to Challan ₹10
20. Vehicle Rc Pdf ₹30
21. DL to PDF ₹30
22. Agriculture to Detail ₹25
23. Agriculture to PDF V2 ₹15
24. Bank IFSC Details ₹5
25. GST Advance 2.0 ₹10
26. Mobile Number Info ₹20
27. Email Info / Leaks ₹50
28. Telegram To Number ₹15
29. Pincode Details ₹5
30. Post Office Info ₹5
31. Aadhaar To PDF ₹100
32. Aadhaar to Ration PDF ₹30
33. PAN To Name & DOB ₹15
34. PAN To GST Lookup ₹10
35. Mobile to PAN ₹30
36. Mobile To Vehicle Number ₹100
37. LL to PDF ₹25
38. Chassis 2 Vehicle Number ₹100
39. Engine 2 Vehicle Number ₹100
40. Vehicle to Challan V2 ₹30
41. Agriculture to PDF V4 ₹20
42. Agriculture to PDF V5 ₹25
43. Agriculture to Status ₹15
44. Voter to Detail ₹15
45. Voter Mobile Link OTP Send ₹20
46. Voter Mobile Link No OTP Instant ₹30
47. Ayushman to PNG ₹50
48. Ration to Aadhaar All State ₹250
49. Ration to PDF ₹50
Note this is real price according to main panel but I will give you very high discount
Message here @ykguycyber

Ye bahut usefull hai 75% kaam yahi karega keys find krne ke liye Ration info Lpg info all Eshram Uidai Sab isi se Banega