{% extends "_panel.html" %} {% block title %}seoGeo — API{% endblock %} {% block content %}

REST API

Panelin tüm işlevleri JSON uç noktalarıyla da kullanılabilir
Kimlik doğrulama: SEOGEO_API_TOKEN tanımlıysa tüm isteklerde X-Api-Token başlığı (veya ?token=) gerekir. Tanımlı değilse uç noktalar açıktır — paneli ağa açarken mutlaka tanımlayın.

Lead magnet — hızlı denetim

POST /api/lead-audit          {"url": "musteri.com", "max_pages": 10}
GET  /api/lead-audit?url=...  &save=false

~40 sn · harf notu, skorlar, ilk 3 hızlı kazanç, özet metin. Landing sayfanıza gömün.

Denetimler

GET  /api/audits?host=ornek.com&limit=50      → {"audits": [...meta...]}
GET  /api/audits/{id}                         → skorlar, sayılar, üst aksiyonlar

Denetim başlatma (arka plan işi)

POST /api/jobs      {"url": "ornek.com", "max_pages": 50, "max_depth": 3,
                     "pagespeed_pages": 3, "strategy": "mobile",
                     "use_gsc": true, "ga4_property": "123"}
→ 202 {"job_id": "...", "status_url": "/api/jobs/..."}

GET  /api/jobs/{id} → {"status": "running|done|error", "audit_id": "...", ...}

Siteler ve zamanlama

GET    /api/sites              → her sitenin son denetim özeti
GET    /api/schedules          → zamanlanmış denetimler
POST   /api/schedules          {"url": "ornek.com", "interval_hours": 168}
DELETE /api/schedules/{id}

interval_hours: 0 eşleşen zamanlamayı kapatır.

Hızlı örnek

curl -s http://127.0.0.1:8000/api/audits -H 'X-Api-Token: ...'
curl -s -X POST http://127.0.0.1:8000/api/jobs \
  -H 'Content-Type: application/json' -H 'X-Api-Token: ...' \
  -d '{"url": "ornek.com", "max_pages": 30}'
{% endblock %}