S33D Search
v0.4.0API 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();