Marktinputs bleiben explizit
Keep mkt, cc, und lang Sichtbar anstatt die Local als einziger austauschbarer Wert zu behandeln.
Erhalten Sie Bing-Suchergebnisse als geparstes JSON für Marktforschung und Ranking-Monitoring. Steuern Sie Markt, Sprache, Standort, sichere Suche und Paginierung.
Bing-Sichtbarkeit, im Kontext gehalten
Keep mkt, cc, und lang Sichtbar anstatt die Local als einziger austauschbarer Wert zu behandeln.
Verwenden Sie ein named location mit unterstützten Breitengrößen- und Längengrößenkontrollen, wenn die Beobachtung einen genauen Suchort benötigt.
Verbrauchen Sie dokumentierte Ergebnisobjekte, anstatt einen Bing-Seiten-Parser in Ihre Anwendung zu integrieren.
Interpretieren Sie fehlende Anzeigen, Bilder und andere Module als abhängig von der Abfrage, bis der HTTP-Ergebnis- und Antwortkontext etwas anderes sagt.
Eine zurückgegebene Position gehört zu dieser Kombinationnicht zur Abfrage isoliert.
Produktpassform
Dieser Endpunkt ist auf Bing-spezifische Beobachtungen und geparste Ausgaben ausgelegt. Validieren Sie repräsentative Märkte und Suchanfragen anhand der aktuellen Dokumentation, bevor Sie einen produktiven Consumer entwerfen.
Starke Passform
Bauen Sie Keywords, Publisher, Marke, bezahlte Platzierung und Cross-Engine-Monitoring um Bing-Steuerungen herum, anstatt davon auszugehen, dass das Anforderungsmodell einer anderen Engine zutrifft.
Markt- und Sprachvergleiche
Standort- und Koordinatenbasierte Beobachtungen
Safe-search kontrollierte Forschung
Offset- und Ergebniszählfenster
Bing-Anforderungssteuerelemente
Beginnen Sie mit der Abfrage und fügen Sie dann den dokumentierten Markt, die Herkunft, das Filtern und die Ergebnisse ein, die für die Entscheidung Ihrer Anwendung erforderlich sind.
Geben Sie den Suchbegriff an, den Ihre Beobachtung darstellen soll.
Beschreiben Sie den Markt- und Sprachkontext unter Verwendung der unterschiedlichen Werte, die vom Endpunkt unterstützt werden.
Angeben Sie einen geografischen Standorttarget zusammen mit unterstützten Koordinatenwerten, wenn eine genaue Herkunft wichtig ist.
Stellen Sie den dokumentierten Filterwert fest, der der Beobachtung gehört.
Wählen Sie die Ergebnis-Offset und die angeforderte Anzahl von Ergebnissen aus, speichern Sie beide dann mit zurückgegebenen Positionen.
Parsed Response Model
Bing Search gibt Metadaten zurück und analysiert JSON-Ergebnis-Sammlungen. Kern- und optionale Sammlungen sollten als Teile einer kontextuellen Beobachtung verbraucht werden.
generalMetadaten auf der Reaktionsstufe helfen, die von dem Endpunkt zurückgegebene Suchanzeige zu identifizieren und zu überprüfen.
organic[]Verwenden Sie zurückgegebene Titel, Links, Beschreibungen und beobachtete Positionen nach der dokumentierten Antwortform.
related[]Verwandte Suchanfragen können Abfragenverfeinerungen liefern, wenn die zurückgegebene Bing-Antwort diese Sammlung aussetzt.
module?Anzeigen, Bilder und andere Abschnitte sind optional und abhängig von der Abfrage; Nehmen Sie nicht an, dass jede erfolgreiche Antwort diese enthält.
Eine kontextbezogene Anfrage
Wählen Sie die Bing-Abfrage, Markt, Land, Sprache, Herkunft, Sicherheitssuchlevel und das Ergebnisfenster aus, das eine klare Frage beantwortet.
Call /v2 with api_key, engine=bing, q, und den dokumentierten Kontext, den Ihre Workload benötigt.
Bearbeiten Sie Transportfehler, Timeouts und nicht erfolgreiche HTTP-Status, bevor Sie den JSON-Body analysieren.
Behalten Sie den Fingerabdruck der Anfrage, die zurückgegebenen Sammlungen, die Beobachtungszeit und Ihre eigene Schemaversion für eine vergleichbare Analyse.
Integration
Behalten Sie den API-Schlüssel in einer Umgebungsvariable, kodieren Sie die Abfragewerte, setzen Sie einen expliziten Timeout und verarbeiten Sie das HTTP-Ergebnis, bevor Sie JSON konsumieren.
: "${WSA_API_KEY:?WSA_API_KEY is required}"
curl --get --fail-with-body --max-time 120 \
"https://serpapi.webscrapingapi.com/v2" \
--data-urlencode "api_key=$WSA_API_KEY" \
--data-urlencode "engine=bing" \
--data-urlencode "q=coffee roasters" \
--data-urlencode "mkt=en-US" \
--data-urlencode "cc=us" \
--data-urlencode "lang=en"const apiKey = process.env.WSA_API_KEY;
if (!apiKey) throw new Error("WSA_API_KEY is required");
const url = new URL(
"https://serpapi.webscrapingapi.com/v2?engine=bing&q=coffee%20roasters"
);
url.searchParams.set("api_key", apiKey);
url.searchParams.set("mkt", "en-US");
url.searchParams.set("cc", "us");
url.searchParams.set("lang", "en");
const response = await fetch(url, {
signal: AbortSignal.timeout(120_000),
});
if (!response.ok) {
throw new Error("API status " + response.status);
}
console.log(await response.json());import os
import requests
api_key = os.environ.get("WSA_API_KEY")
if not api_key:
raise RuntimeError("WSA_API_KEY is required")
response = requests.get(
"https://serpapi.webscrapingapi.com/v2",
params={
"api_key": api_key,
"engine": "bing",
"q": "coffee roasters",
"mkt": "en-US",
"cc": "us",
"lang": "en",
},
timeout=120,
)
response.raise_for_status()
print(response.json())<?php
$apiKey = getenv("WSA_API_KEY");
if ($apiKey === false || $apiKey === "") {
throw new RuntimeException("WSA_API_KEY is required");
}
$parameters = http_build_query([
"api_key" => $apiKey,
"q" => "coffee roasters",
"mkt" => "en-US",
"cc" => "us",
"lang" => "en",
]);
$client = curl_init(
"https://serpapi.webscrapingapi.com/v2?engine=bing&" . $parameters
);
curl_setopt_array($client, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 120,
]);
$body = curl_exec($client);
$status = curl_getinfo($client, CURLINFO_RESPONSE_CODE);
$error = curl_error($client);
curl_close($client);
if ($body === false) throw new RuntimeException($error);
if ($status < 200 || $status >= 300) {
throw new RuntimeException("API status " . $status);
}
echo $body;package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
"time"
)
func main() {
apiKey := os.Getenv("WSA_API_KEY")
if apiKey == "" { panic("WSA_API_KEY is required") }
requestURL := "https://serpapi.webscrapingapi.com/v2?" +
"api_key=" + url.QueryEscape(apiKey) +
"&engine=bing&q=" + url.QueryEscape("coffee roasters") +
"&mkt=en-US&cc=us&lang=en"
client := &http.Client{Timeout: 120 * time.Second}
response, err := client.Get(requestURL)
if err != nil { panic(err) }
defer response.Body.Close()
if response.StatusCode < 200 || response.StatusCode >= 300 {
panic(fmt.Sprintf("API status %d", response.StatusCode))
}
body, err := io.ReadAll(response.Body)
if err != nil { panic(err) }
fmt.Println(string(body))
}import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
public final class BingSearchExample {
public static void main(String[] args) throws Exception {
String apiKey = System.getenv("WSA_API_KEY");
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException("WSA_API_KEY is required");
}
String key = URLEncoder.encode(apiKey, StandardCharsets.UTF_8);
String url = "https://serpapi.webscrapingapi.com/v2?api_key=" + key
+ "&engine=bing&q=coffee%20roasters"
+ "&mkt=en-US&cc=us&lang=en";
var request = HttpRequest.newBuilder()
.uri(URI.create(url))
.timeout(Duration.ofSeconds(120))
.GET().build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() < 200 || response.statusCode() >= 300) {
throw new IllegalStateException("API status " + response.statusCode());
}
System.out.println(response.body());
}
}using System;
using System.Net;
using System.Net.Http;
var rawApiKey = Environment.GetEnvironmentVariable("WSA_API_KEY");
if (string.IsNullOrWhiteSpace(rawApiKey)) {
throw new InvalidOperationException("WSA_API_KEY is required");
}
var apiKey = WebUtility.UrlEncode(rawApiKey);
var requestUrl =
"https://serpapi.webscrapingapi.com/v2?api_key=" + apiKey +
"&engine=bing&q=coffee%20roasters" +
"&mkt=en-US&cc=us&lang=en";
using var client = new HttpClient {
Timeout = TimeSpan.FromSeconds(120)
};
var response = await client.GetAsync(requestUrl);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());require "net/http"
require "uri"
api_key = ENV["WSA_API_KEY"]
raise "WSA_API_KEY is required" if api_key.nil? || api_key.empty?
uri = URI(
"https://serpapi.webscrapingapi.com/v2?engine=bing&q=coffee%20roasters"
)
parameters = URI.decode_www_form(uri.query) + [
["api_key", api_key],
["mkt", "en-US"],
["cc", "us"],
["lang", "en"]
]
uri.query = URI.encode_www_form(parameters)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.open_timeout = 10
http.read_timeout = 120
response = http.get(uri.request_uri)
unless response.is_a?(Net::HTTPSuccess)
raise "API status #{response.code}"
end
puts response.bodyhttps://serpapi.webscrapingapi.com/v2
WSA_API_KEY bleibt serverseitig
api_key + engine=bing + q
mkt + cc + lang
120-Sekunden-Timeout und explizite Statusverwaltung
Workflows für Einkäufer
Verfolgen Sie zurückgegebene Positionen über kontrollierte Markt-, Sprache-, Herkunfts- und Ergebnis-Fensterkombinationen hinweg.
Beobachten Sie zugelassenen Domains in Bing-Fragengruppen, ohne eine Abwesenheit als universelle Erkenntnis zu betrachten.
Erfassen Sie bei Vorhandensein bezahlte Ergebnisse und halten Sie die Kampagneninterpretation in Ihrem Überprüfungsverfahren.
Hinzufügen von Bing-Quellen und verwandten Abfragen zu den Forschungen, die sonst nur eine Suchmaschine darstellen würden.
Motorenvergleich
Standort-, Sprache-, Gerät-, vertikalen und Paginierungssteuerungen für Google-Ergebnisbeobachtungen.
Compare GoogleMarkt-, Land-, Sprache-, Herkunft-, Sicherheitssuche- und Ergebnisfensterkontrollen mit analysierten Sammlungen.
Region, Schnittstellensprache, sichere Suche und Zeitsteuerung mit der Quelle SERP HTML in einem JSON-Umschlag.
Compare DuckDuckGo Source PayloadRegional-, Sprache-, Gerät-, Seiten- und Zeitsteuerungen mit der Quelle SERP HTML in einem JSON-Umschlag.
Compare YandexPreisgestaltung und Bewertung
Repräsentative Abfragen Fügen Sie erwartete Kopf-, Long-Tail- und Nullmodul-Fälle hinzu.
Erforderliche Kontexte Üben Sie die Märkte, Sprachen, Herkunft und Filterwerte, die Sie speichern.
Konsumstaat Überprüfen Sie erfolgreiche Antworten, optional erfasste Sammlungen, Zeiträume und dokumentierte Fehler.
Häufige Fragen zur Bing Search API
Bing Search API gibt Anfragen zu Metadaten und geparsene JSON-Ergebnis-Sammlungen zurück. Dokumentar-Sammlungen enthalten organische und verwandte Ergebnisse; Anzeigen, Bilder und andere Module sind optional und erscheinen nur, wenn die zurückgegebene Bing-Seite sie ausstellt.
Verwenden Sie mkt für einen Markt, cc für einen Landkontakt, lang für Sprache und Standort mit lat und lon für einen genauen Suchort.
Der erste Parameter legt den Ergebnis-Offset fest, und count fordert die Größe des Ergebnisfensters an. Speichern Sie beide Werte gemeinsam mit den zurückgegebenen Positionen, damit verschiedene Seiten nicht so verglichen werden, als wären sie dieselbe Beobachtung.
Nicht allein. Überprüfen Sie zunächst den HTTP-Status und den dokumentierten Fehlerkörper. Eine erfolgreiche Antwort kann eine optionale Sammlung auslassen, wenn diese Bing-Seite das entsprechende Ergebnismodul für die bereitgestellte Abfrage und den Kontext nicht aussetzt.
Ja. Verwenden Sie den dokumentierten SafeSearch-Parameter für die Filterungsspiegel, die von der Anfrage verlangt wird. Behalten Sie diesen Wert bei der Beobachtung, da die Änderung der Ergebnisse und Module ändern kann, die zurückgegeben werden.
Bing Search API akzeptiert Bing-spezifische Suchkontext und liefert dokumentierte Metadaten plus gesammelte Ergebnisse. Scraper-API nimmt eine zugelassenen öffentlichen Webseite zurück und lässt die Extraktion und das Nachströmungsdatenmodell mit Ihrer Anwendung.
Ihre erste Bing-Beobachtung
Teilen Sie Suchmaschine, Suchbegriffe, Märkte und Aktualisierungsplan. Wir bestätigen Antwortformat und Preise für Ihre Aufgaben.