Zum Hauptinhalt springen
Der Olostep-Endpunkt /v1/searches ermöglicht es dir, das Web mit einer natürlichen Sprachabfrage zu durchsuchen und eine deduplizierte Liste relevanter Links mit Titeln und Beschreibungen zurückzubekommen.
  • Sende eine Abfrage in einfachem Englisch
  • Erhalte strukturierte Links aus dem gesamten Web
  • Optional kannst du jede zurückgegebene URL in einem Durchgang scrapen und markdown_content / html_content direkt in die Antwort einbetten
  • Filtere nach Domain, steuere die Ergebnisanzahl und begrenze die Scraping-Zeit
Die Abfrage wird semantisch im gesamten Web gesucht und Ergebnisse werden zurückgegeben. Für API-Details siehe die Such-Endpunkt-API-Referenz.

Installation

Grundlegende Nutzung

Sende eine Abfrage in natürlicher Sprache und erhalte eine Liste relevanter Links.

Anfrageparameter

Begrenzung der Anzahl der Ergebnisse

Filtern nach Domain

include_domains beschränkt Ergebnisse auf eine Whitelist; exclude_domains filtert unerwünschte Quellen aus. Sie können kombiniert werden.

scrape_options

Übergebe scrape_options, um jede zurückgegebene URL parallel zu scrapen und den gerenderten Inhalt direkt auf jedem Link einzubetten. Dies spart eine Runde pro Ergebnis im Vergleich zum separaten Aufruf von /v1/searches und /v1/scrapes.

Verhalten

  • Alle Links werden parallel gescraped. Der timeout begrenzt das gesamte Batch, nicht jeden einzelnen Link.
  • Bei Scraping-Fehlern pro Link (Netzwerkfehler, individuelle Seitenauszeiten) bleibt der markdown_content / html_content dieses Links null, während andere Links normal zurückgegeben werden.
  • Wenn der globale timeout abläuft, bevor alle Scrapes abgeschlossen sind, antwortet die Suche sofort mit den Links, die sie hat — bereits abgeschlossene Scrapes behalten ihren Inhalt; in Bearbeitung befindliche kommen mit null-Inhalt zurück.
  • Für reddit.com/.../comments/... URLs wird die Anfrage automatisch über den @olostep/reddit-post Parser geleitet und das strukturierte JSON wird in sauberes Markdown + einfaches HTML gerendert.
  • Wenn der kombinierte Inline-Inhalt 9MB überschreitet, werden Inhaltsfelder genullt, result.size_exceeded wird auf true gesetzt, und du kannst die vollständige Nutzlast von result.json_hosted_url abrufen.

Beispiel mit Scraping

Antwort

Du erhältst ein search-Objekt als Antwort. Das search-Objekt enthält eine id, deine ursprüngliche query, credits_consumed und ein result mit einer Liste von links.
Jeder Link in result.links enthält: Das vollständige Ergebnis ist auch als gehostete JSON-Datei unter result.json_hosted_url verfügbar — nützlich, wenn result.size_exceeded true ist.

Abrufen einer vergangenen Suche

GET /v1/searches/{search_id} gibt alles zurück, was zum Zeitpunkt der Suche gespeichert wurde, einschließlich aller gescrapten Inhalte. Es ist ein reines idempotentes Lesen — kein erneutes Scraping, keine erneute Abrechnung. Ältere Suchen ohne scrape_options haben einfach keine Inhaltsfelder pro Link.
Siehe Suche abrufen für vollständige Details.

Speicherung

Gespeicherte Dateien für eine Suche werden standardmäßig 7 Tage lang aufbewahrt. Übergebe ein storage-Objekt bei POST /v1/searches, um sie länger oder unbegrenzt zu behalten. Die Einstellung umfasst die gehostete JSON-Datei unter result.json_hosted_url und, wenn scrape_options gesetzt ist, den für jeden Link gescrapten Inhalt. Das Weglassen von storage oder das Senden von storage ohne expires_in verwendet 7d. Sowohl die Erstellungsantwort als auch GET /v1/searches/{search_id} enthalten den wirksamen Wert:
cURL
Ein ungültiger Wert gibt 400 zurück:

Preisgestaltung

Jede Suche kostet 5 Credits für die Suche selbst. Wenn scrape_options angegeben ist, wird jede gescrapte Seite zum Standardtarif von /v1/scrapes berechnet (typischerweise 1 Credit pro Seite; einige Parser kosten mehr). Die Gesamtsumme wird in credits_consumed zurückgegeben. Beispiele: