/v1/searches vous permet de rechercher sur le web avec une requête en langage naturel et de recevoir une liste dédupliquée de liens pertinents avec des titres et des descriptions.
- Envoyez une requête en anglais courant
- Obtenez des liens structurés de tout le web
- Optionnellement, récupérez chaque URL retournée en un seul aller-retour et intégrez
markdown_content/html_contentdirectement dans la réponse - Filtrez par domaine, contrôlez le nombre de résultats et limitez le temps d’exécution du scraping
Installation
Utilisation de base
Envoyez une requête en langage naturel et recevez une liste de liens pertinents.Paramètres de la requête
| Champ | Type | Requis | Par défaut | Description |
|---|---|---|---|---|
query | string | oui | — | La requête de recherche en langage naturel. |
limit | integer | non | 12 | Nombre maximum de liens à retourner après déduplication. Doit être compris entre 1 et 25. |
include_domains | string[] | non | [] | Restreindre les résultats à ces domaines. Hôtes nus uniquement — les préfixes http(s):// et les barres obliques finales sont automatiquement supprimés. |
exclude_domains | string[] | non | [] | Exclure les résultats de ces domaines. Hôtes nus uniquement — les préfixes http(s):// et les barres obliques finales sont automatiquement supprimés. |
scrape_options | object | non | — | Lorsqu’il est fourni, chaque lien retourné est également récupéré et son contenu intégré dans la réponse. Voir scrape_options ci-dessous. |
Limiter le nombre de résultats
Filtrer par domaine
include_domains limite les résultats à une liste blanche ; exclude_domains filtre les sources indésirables. Ils peuvent être combinés.
scrape_options
Passezscrape_options pour récupérer chaque URL retournée en parallèle et intégrer le contenu rendu directement sur chaque lien. Cela économise un aller-retour par résultat par rapport à l’appel de /v1/searches et /v1/scrapes séparément.
| Champ | Type | Par défaut | Description |
|---|---|---|---|
formats | string[] | ["markdown"] | Formats de sortie à attacher à chaque lien. Pour /v1/searches, seuls "html" et "markdown" sont pris en charge. Passez ["html", "markdown"] pour recevoir les deux. |
remove_css_selectors | string | "default" | Transmis à /v1/scrapes. "default" supprime le bruit nav/footer/script/style/svg/dialog. Utilisez "none" pour désactiver, ou passez un tableau de sélecteurs JSON pour supprimer. |
timeout | integer | 25 | Budget d’exécution en secondes pour toute la phase de récupération. Doit être compris entre 1 et 60. Après ce délai, la recherche revient immédiatement — les champs de contenu seront null pour tous les liens qui n’ont pas été terminés. |
Comportement
- Tous les liens sont récupérés en parallèle. Le
timeoutlimite l’ensemble du lot, pas chaque lien individuel. - Les échecs de récupération par lien (erreurs réseau, délais d’attente individuels) laissent le
markdown_content/html_contentde ce lien ànulltandis que les autres liens retournent normalement. - Si le
timeoutglobal expire avant que toutes les récupérations soient terminées, la recherche répond immédiatement avec les liens qu’elle a — les récupérations déjà terminées conservent leur contenu ; celles en cours reviennent avec un contenunull. - Pour les URLs
reddit.com/.../comments/..., la requête est automatiquement acheminée via le parseur@olostep/reddit-postet le JSON structuré est rendu en markdown propre + HTML basique. - Si le contenu intégré combiné dépasse 9 Mo, les champs de contenu sont annulés,
result.size_exceededest défini àtrue, et vous pouvez récupérer la charge utile complète depuisresult.json_hosted_url.
Exemple avec récupération
Réponse
Vous recevrez un objetsearch en réponse. L’objet search contient un id, votre query originale, credits_consumed, et un result avec une liste de links.
result.links contient :
| Champ | Type | Description |
|---|---|---|
url | string | L’URL du résultat de la recherche. |
title | string | Le titre de la page de résultat. |
description | string | Un court extrait décrivant le résultat. |
markdown_content | string | Contenu en markdown de la page. Présent uniquement lorsque scrape_options.formats inclut "markdown". null si la récupération a échoué, était vide, ou a atteint le délai d’attente global. |
html_content | string | Contenu HTML de la page. Présent uniquement lorsque scrape_options.formats inclut "html". null en cas d’échec/délai d’attente. |
result.json_hosted_url — utile lorsque result.size_exceeded est true.
Récupérer une recherche passée
GET /v1/searches/{search_id} retourne ce qui a été enregistré au moment de la recherche, y compris tout contenu récupéré. C’est une lecture idempotente pure — pas de nouvelle récupération, pas de nouvelle facturation. Les recherches plus anciennes sans scrape_options n’ont simplement pas de champs de contenu par lien.
Tarification
Chaque recherche coûte 5 crédits pour la recherche elle-même. Lorsquescrape_options est fourni, chaque page récupérée est facturée au tarif standard /v1/scrapes (généralement 1 crédit par page ; certains parseurs coûtent plus cher). Le total est retourné dans credits_consumed.
Exemples :
| Requête | credits_consumed |
|---|---|
| Recherche uniquement | 5 |
| Recherche + 5 pages récupérées (1 crédit chacune) | 10 |