Konventionen#

Gemeinsame Abfrageparameter#

Die Such-Endpunkte akzeptieren einen gemeinsamen Satz von Parametern. Jeder entspricht einer Option, die die Website in ihrem Einstellungs-Cookie hält; hier sind sie in der URL explizit.

ParameterGilt fürWerteStandard
qalle Such-EndpunkteDie Abfragezeichenkette (erforderlich)
engineweb, images, news, videos, cardsbrave, mojeek, marginalia oder all; mehrere durch Komma oder Leerzeichen trennenall
safeweb, images, news, videos, cardson / off (off, false, 0, no bedeuten alle off)on
langdie meisten EndpunkteEin Sprachcode, z.B. de, enleer (auto)
pageweb, images, news, videosSeitennummer, 1501
dateweb, news, videosZeitbereich: d (Tag), w (Woche), m (Monat), y (Jahr)keiner

Hinweise:

  • engine — ein unbekannter Suchmaschinenname gibt 400 mit der Liste gültiger Namen zurück. Medien-Tabs mischen ihren ergänzenden Anbieter (Pixabay / World News / Sepia) über Brave; für die Mojeek/Marginalia-Suchmaschinen ist dieser ergänzende Anbieter die einzige Medienquelle.
  • page — Werte über 50 werden auf 50 begrenzt (verhindert, dass ein Client einen Anbieter überlastet), Werte unter 1 werden auf 1 begrenzt.

Antwortstruktur#

Jeder Endpunkt gibt JSON zurück. Such-Endpunkte geben den Anforderungskontext neben den results zurück, sodass eine Antwort selbstbeschreibend ist:

{
  "query": "klima",
  "tab": "web",
  "page": 1,
  "engine": ["brave", "mojeek", "marginalia"],
  "correction": "",
  "results": [ /* ... */ ]
}
  • query — die Anfrage, wie Seurch sie interpretiert hat.
  • tab — welche Art von Suche ausgeführt wurde.
  • engine — die tatsächlich abgefragten Suchmaschinen (nach Auflösung von all / Standardwerten).
  • correction — ein Rechtschreibvorschlag für die Anfrage, oder "" (nur Web).
  • results — das Ergebnis-Array (die Struktur hängt vom Endpunkt ab).

Wissenskarten und Sofortantworten werden als anbietergeformtes JSON zurückgegeben (ihre Struktur variiert je nach Anbieter / Antworttyp), daher verwenden diese Endpunkte kein festes Schema pro Feld; siehe Sofortantworten & Karten.

HTTP-Methoden#

Alle Endpunkte sind GET, außer translate/, das auch POST akzeptiert, damit langer Text nicht in der URL und den Logs erscheint.