#!/usr/bin/env python3
"""Cek ketersediaan API layanan SEO/kompetitor: dokumentasi terbuka & endpoint menjawab."""
import urllib.request, urllib.error

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124.0 Safari/537.36"}

KANDIDAT = [
    ("Bing Webmaster API (gratis)", "https://learn.microsoft.com/en-us/bingwebmaster/"),
    ("DataForSEO", "https://docs.dataforseo.com/v3/"),
    ("SerpApi", "https://serpapi.com/"),
    ("Serper.dev", "https://serper.dev/"),
    ("Moz API", "https://moz.com/api"),
    ("Majestic API", "https://developer.majestic.com/"),
    ("SE Ranking API", "https://seranking.com/api.html"),
    ("Similarweb API", "https://developers.similarweb.com/"),
    ("Open PageRank", "https://www.domcop.com/openpagerank/"),
    ("CrUX API (gratis)", "https://developer.chrome.com/docs/crux/api"),
    ("PageSpeed Insights API (gratis)", "https://developers.google.com/speed/docs/insights/v5/get-started"),
    ("Ahrefs API", "https://docs.ahrefs.com/docs/api"),
    ("Semrush API", "https://developer.semrush.com/api/v3/"),
    ("Google Trends via SerpApi", "https://serpapi.com/google-trends-api"),
    ("Common Crawl", "https://commoncrawl.org/"),
    ("SpyFu API", "https://www.spyfu.com/api"),
    ("Profound (AI visibility)", "https://www.tryprofound.com/"),
    ("Otterly.ai (AI visibility)", "https://otterly.ai/"),
]

for nama, u in KANDIDAT:
    try:
        r = urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=35)
        print(f"   ✅ {nama:<34} {r.status} | {len(r.read()):>8,} byte")
    except urllib.error.HTTPError as e:
        print(f"   ⚠️  {nama:<34} HTTP {e.code}")
    except Exception as e:
        print(f"   ❌ {nama:<34} {str(e)[:40]}")
