S33D Search

v0.4.0

API de crawl, recherche et extraction de contenu web. Indexez des sites, recherchez dans l'index, extrayez du contenu structuré.

Base URL : https://api.s33d.fr

POST /v1/search

Recherche dans l'index de pages web crawlées. Retourne les résultats les plus pertinents avec un extrait de contenu.

Paramètres (JSON body)

Paramètre Type Requis Description
query string oui Requête de recherche
max_results integer non Nombre de résultats (1-20, défaut: 5)

Exemple

curl -X POST https://api.s33d.fr/v1/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer VOTRE_CLÉ" \
  -d '{
    "query": "machine learning frameworks",
    "max_results": 3
  }'

Réponse

{
  "results": [
    {
      "url": "https://example.com/ml",
      "title": "Top ML Frameworks 2026",
      "snippet": "Comparaison des frameworks...",
      "score": 42.5
    }
  ],
  "answer": "Résumé généré à partir des résultats...",
  "total": 3
}

POST /v1/crawl

Lance un crawl BFS (Breadth-First Search) à partir d'une URL de départ. Les pages crawlées sont indexées et disponibles dans la recherche.

Paramètres (JSON body)

Paramètre Type Requis Description
url string oui URL de départ du crawl
max_pages integer non Pages maximum à crawler (défaut: 10)
max_depth integer non Profondeur max de liens (défaut: 2)
same_domain boolean non Rester sur le même domaine (défaut: true)

Exemple

curl -X POST https://api.s33d.fr/v1/crawl \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer VOTRE_CLÉ" \
  -d '{
    "url": "https://example.com",
    "max_pages": 20,
    "max_depth": 3,
    "same_domain": true
  }'

POST /v1/extract

Extrait le contenu textuel structuré d'une URL donnée (titre, contenu principal, liens).

Paramètres

Paramètre Type Requis Description
url string oui URL de la page à extraire

Exemple

curl -X POST https://api.s33d.fr/v1/extract \
  -H "Authorization: Bearer VOTRE_CLÉ" \
  -d '{"url": "https://example.com/article"}'

POST /v1/map

Liste toutes les URLs indexées pour un domaine donné.

Paramètres

Paramètre Type Requis Description
url string oui Domaine ou URL à mapper

POST /v1/recrawl

Re-crawle les pages obsolètes en arrière-plan. Utile pour maintenir l'index à jour.

Paramètres

Paramètre Type Requis Description
max_age_hours integer non Âge max en heures avant recrawl (défaut: 72)
max_pages integer non Nombre max de pages à recrawler (défaut: 50)

GET /health

Vérifie l'état du service et la connectivité base de données.

curl https://api.s33d.fr/health
// {"status": "ok", "db": "connected", "version": "0.2.0"}

Exemples d'intégration

🐍 Python

import requests
resp = requests.post(
  "https://api.s33d.fr/v1/search",
  headers={"Authorization": "Bearer VOTRE_CLÉ"},
  json={"query": "python web scraping"}
)
data = resp.json()

📦 JavaScript

const res = await fetch(
  "https://api.s33d.fr/v1/search",
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      query: "python web scraping"
    })
  }
);
const data = await res.json();