API SERP · Recherche sur Google
API de recherche Google pour les données SERP structurées et contextuelles.
Envoyez une requête Google avec la zone, l'appareil, la surface de recherche et la fenêtre de résultats qui définissent l'observation. Recevez le contexte de la demande documenté et les collections de résultats JSON analysées que votre application côté serveur peut évaluer.
GET /v2 · engine=google· Utilisation côté serveur ·Discutez de votre flux de travail de recherche
- Résultats de la demandeChaque réponse commence par
q - ContextuelPays, langue, emplacement, appareil
- Connaissant la surfaceWeb, images, vidéos, nouvelles, achats, emplois
- Produit analyséCollections de résultats JSON et métadonnées
Comment choisir une chaussure de trail
les meilleures chaussures de trail
G ⌕
domain google
.com gl / hl us / en device mobile start / num 0 / 10
From query to usable objects
Gardez le contexte de la recherche Google attaché aux résultats qu'elle a produits.
Une observation utile du SERP est plus qu'une liste de liens. Définir les conditions de recherche à l'avance et les conserver avec la réponse analysée afin que les comparaisons en aval restent interprétables.
01 · définir
Construire une empreinte digitale précise de la demande
Décrivez la requête, le domaine Google, l'emplacement codé, la langue d'interface, le pays, l'appareil, la surface et la fenêtre de résultats requises par le flux de travail.
02 · consommer
Travailler avec des collections analysées
Lisez les métadonnées documentées et les matrices de résultats au lieu de lier votre application à la marque de présentation d'une page de recherche.
03 · interprète
Option de modèle honnêtement
Traiter les modules de recherche comme conditionnels. leur présence varie selon le contexte de la demande et la surface Google retournée pour cette observation.
04 · comparer
Garder une analyse similaire possible
Conserver le contexte de la demande à côté des résultats avant de calculer les positions, les changements, la couverture de l'éditeur ou les signaux spécifiques au produit.
- 01
Je vous demande .les meilleures chaussures de trail
- 02
DomaineGoogle.com
- 03
LocalisationUS · lieu codé
- 04
La langueen
- 05
Présentationmobile · web
- 06
La fenêtredémarrage 0 · numéro 10
- 07
Résultatsmétadonnées + collections
Surfaces Google documentées
Choisissez la surface de recherche avant de concevoir le consommateur.
Les résultats web réguliers utilisent le moteur Google sans sélecteur vertical.
Surface par défaut
Recherche sur le Web
Envoyez-moi .engine=googleet les exigencesq- Je vous en prie .tbmdémarré pour les résultats de recherche Google réguliers.
modules organiques[] + retournés
Découverte visuelle
Des images
Réglez le sélecteur vertical documenté àtbm=isch.
Attention à l' intention
Vidéos
Réglez le sélecteur vertical documenté àtbm=vid.
Couverture actuelle
Nouvelles
Réglez le sélecteur vertical documenté àtbm=nws.
Découverte du produit
Les achats
Réglez le sélecteur vertical documenté àtbm=shop.
Découverte du rôle
Les emplois
Utiliser la valeur des emplois documentésibp=htl;jobs.
La mise en œuvre de la source de vérité
Valider les entrées et les modules retournés par rapport à laDocumentation de l'API de recherche Googleavec des requêtes représentatives de votre flux de travail prévu.
Contrôles de demande
Faites chaque observation de Google explicite et reproduisable.
Commencez par le paramètre de requête requis. Ajoutez des commandes optionnelles documentées uniquement lorsque le flux de travail a besoin d'une surface, d'une présentation, d'une localité ou d'une fenêtre de résultats particulières.
Requisition requise
q
Les mots clés à rechercher sur Google.
chaîne · requise
Surface de recherche
tbm ibp
tbmsélectionne des images, vidéos, nouvelles ou verticales d'achat documentées.ibpIl prend en charge la valeur de recherche d'emploi documentée.
chaîne · facultative
Présentation
device
Sélectionnez une présentation de recherche supportée sur ordinateur de bureau, mobile ou tablette.
chaîne · facultative
L' hôte de Google
domain
Choisissez le domaine Google utilisé pour la recherche.
chaîne · facultative
Localisation codée
uule
Passer une localisation codée par Google pour le contexte de recherche.
chaîne · facultative
Langue et pays
hl gl
hldéfinit la langue de l' interface;glfournit le code du pays utilisé pour localiser la recherche.
chaîne · facultative
Fenêtre de résultats
start num
startest le résultat compensé pour sauter;numdemande le nombre de résultats sur chaque page.
nombre entier · facultatif
Demande illustrativeGET /v2?engine=google&api_key=…&q=best%20trail%20shoes&domain=google.com&gl=us&hl=en&device=mobile&start=0&num=10
Réponse paralysée par Google
Conception autour de significations stables et de modules conditionnels.
La réponse documentée contient des métadonnées de recherche et des collections de résultats JSON analysées. Les blocs présents dans une réponse spécifique dépendent de la requête, du lieu, du dispositif et de la verticale de recherche.
01 · context
general
Moteur de recherche, nombre de résultats, langue, emplacement, présentation, type de recherche, titre de page et champs d'étemples de temps indiqués par l'exemple de réponse documenté.
02 · request trace
input
Demandez des informations telles que l'URL originale et les champs de l'agent utilisateur indiqués dans l'exemple de réponse documenté.
03 · discovery paths
navigation
Les entrées de navigation retournées peuvent identifier d'autres surfaces de recherche Google pour la requête.
04 · parsed results
organic[]
Les objets organiques documentés comprennent des champs tels que le lien, le lien d'affichage, le titre, la description, le rang et le rang mondial lorsqu'ils sont retournés.
réponse. jsonillustrative
{
"general": {
"search_engine": "google",
"language": "en",
"location": "United States",
"mobile": true
},
"organic": [
{
"rank": 1,
"title": "Trail footwear guide",
"link": "https://example.org/guide"
}
],
"navigation": []
}Règle d'option
Les modules de résultats sont facultatifs. Un bloc manquant est différent d'une demande HTTP ratée, et une collection vide doit être interprétée dans le contexte exact de la demandeet non comme une absence universelle.
Une demande contextuelle
Passez de l'intention de recherche à JSON validé en trois étapes.
Votre application définit l'observation et consomme la réponse. WebScrapingAPI exploite le chemin de recherche documenté de Google et de partage entre eux.
- 01
Encadrer l'observation
Choisissez la requête, la surface de recherche, le domaine Google, l'emplacement codé, la langue, le pays, l'appareil et la fenêtre de page requises par la décision.
- 02
Appeler le point de terminaison côté serveur
Envoyez une demande de GET à
https://serpapi.webscrapingapi.com/v2withapi_key,engine=google, etq. - 03
Valider avant utilisation
Inspectez le résultat HTTP, analysez JSON, lisez les collections dont vous avez besoin dans votre flux de travail et préservez le contexte de la demande avec les résultats stockés.
Demande synchrone
engine=google
Utilisez le chemin standard lorsque l'application doit attendre la réponse Google paralysée actuelle.
Retour en file d'attente
engine=google_async
Soumettez une recherche Google et récupérez la charge utile SERP finie plus tard via l'API Snapshot.
L'intégration
Commencez par une demande limitée et consciente de l'échec de Google.
Gardez la clé API dans la configuration côté serveur, cochez les valeurs de requête, définissez un délai explicite et faites apparaître les résultats HTTP infructueux avant de parser la réponse.
Contrat de demande
Testez le contexte dans lequel votre produit sera utilisé.
Les exemples envoient la même requête Web représentative de Google avec le contexte mobile anglais américain.
- Point final
https://serpapi.webscrapingapi.com/v2- Réservé
api_key+engine=google+q- Contextes
gl=us+hl=en+device=mobile- La frontière
- Temps de délais de 120 secondes pour le client et traitement explicite des erreurs HTTP
: "${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=google" \
--data-urlencode "q=best trail shoes" \
--data-urlencode "gl=us" \
--data-urlencode "hl=en" \
--data-urlencode "device=mobile"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": "google",
"q": "best trail shoes",
"gl": "us",
"hl": "en",
"device": "mobile",
},
timeout=120,
)
response.raise_for_status()
print(response.json())const apiKey = process.env.WSA_API_KEY;
if (!apiKey) throw new Error("WSA_API_KEY is required");
const parameters = new URLSearchParams({
"api_key": apiKey,
"engine": "google",
"q": "best trail shoes",
"gl": "us",
"hl": "en",
"device": "mobile",
});
const response = await fetch(
"https://serpapi.webscrapingapi.com/v2?" + parameters,
{ signal: AbortSignal.timeout(120_000) }
);
if (!response.ok) {
throw new Error("Google Search API status " + response.status);
}
console.log(await response.json());<?php
$apiKey = getenv("WSA_API_KEY");
if ($apiKey === false || $apiKey === "") {
throw new RuntimeException("WSA_API_KEY is required");
}
$endpoint = "https://serpapi.webscrapingapi.com/v2"
. "?engine=google"
. "&api_key=" . rawurlencode($apiKey)
. "&q=" . rawurlencode("best trail shoes")
. "&gl=us&hl=en&device=mobile";
$client = curl_init($endpoint);
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 >= 400) 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") }
endpoint := "https://serpapi.webscrapingapi.com/v2?engine=google" +
"&api_key=" + url.QueryEscape(apiKey) +
"&q=" + url.QueryEscape("best trail shoes") +
"&gl=us&hl=en&device=mobile"
client := &http.Client{Timeout: 120 * time.Second}
response, err := client.Get(endpoint)
if err != nil { panic(err) }
defer response.Body.Close()
if response.StatusCode >= 400 {
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.*;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
public final class GoogleSearchApiExample {
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 endpoint = "https://serpapi.webscrapingapi.com/v2"
+ "?engine=google"
+ "&api_key=" + URLEncoder.encode(
apiKey, StandardCharsets.UTF_8)
+ "&q=" + URLEncoder.encode(
"best trail shoes", StandardCharsets.UTF_8)
+ "&gl=us&hl=en&device=mobile";
var request = HttpRequest.newBuilder(URI.create(endpoint))
.timeout(Duration.ofSeconds(120))
.GET().build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() < 200 || response.statusCode() >= 300) {
throw new RuntimeException("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 query = WebUtility.UrlEncode("best trail shoes");
var endpoint = "https://serpapi.webscrapingapi.com/v2"
+ "?engine=google&api_key=" + apiKey
+ "&q=" + query
+ "&gl=us&hl=en&device=mobile";
using var client = new HttpClient();
client.Timeout = TimeSpan.FromSeconds(120);
var response = await client.GetAsync(endpoint);
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?
api_key = URI.encode_www_form_component(api_key)
query = URI.encode_www_form_component("best trail shoes")
uri = URI("https://serpapi.webscrapingapi.com/v2" +
"?engine=google&api_key=#{api_key}&q=#{query}" +
"&gl=us&hl=en&device=mobile")
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.bodyFlux de travail des acheteurs
Transformer les observations comparables de Google en signaux spécifiques au produit.
Conservez d'abord l'empreinte digitale de la requête, puis appliquez le stockage, les calculs, les règles d'examen et la logique de décision appropriées au flux de travail.
SEO intelligence
Surveillance de la position et du module
Comparer les positions organiques retournées et les modules optionnels à travers les requêtes contrôlées, les lieux, les appareils et les fenêtres de résultats.
Explorer la surveillance des recherches →
Brand visibility
Présence de l'éditeur et du domaine
Observez les domaines retournés pour les groupes de requêtes approuvés tout en gardant les règles d'absence et de signification dans votre application.
Explorer la protection de la marque →
Market research
Paysages thématiques et sources
La carte a renvoyé les éditeurs, les titres et les descriptions dans des contextes de recherche comparables et des périodes de révision.
Explorer les études de marché →
Search data contract
Enregistrements historiques du SERP
Définir le schéma, l'horodatage d'observation, l'empreinte digitale requise, les états de validation et le modèle de rétention nécessaires au-delà du JSON de la demande.
Révision des données des résultats de recherche →
Choix de produit
Choisissez la couche qui correspond à votre modèle de propriété.
L'API de recherche Google est l'option spécifique au moteur pour une demande Google documentée et une réponse parsemée.
Network access
Les proxies
Votre équipe possède le client de recherche, la logique de récupération, le parsing, le modèle de réponse et la maintenance.
Infrastructure
Page retrieval
API de scraping
Demandez une page publique admissible si votre demande possède l'extraction et son schéma en aval.
API d'accès au Web
Current product
API de recherche de Google
Envoyez une requête contextuelle Google et consommez des métadonnées documentées plus collections de résultats analysés.
Réponse SERP spécifique au moteur
Interactive retrieval
API de navigateur
Utilisez une demande REST soutenue par le navigateur avec des attentes documentées et des étapes d'interaction lorsque les paramètres de recherche Google ne conviennent pas.
API d'accès au Web
Operated delivery
Données gérées
Accordez l'ensemble de requêtes, la cadence, le schéma, le processus de qualité et la livraison avec WebScrapingAPI.
Programme de données
Évaluation de la production
Évaluer la matrice de contexte complète de Google.
Utilisez des requêtes représentatives sur le Web et verticales, target locales, appareils, fenêtres de résultats, états de module optionnels, collections vides et résultats HTTP infructueux avant de sélectionner un plan.
Modèle de charge de travail
Évaluer les observationspas seulement les mots clés.
Formule illustrative du volume de demande
Questions × Contexts × Surfaces × Les fenêtres × Fréquence
Les prix actuels et les termes du plan restent la source commerciale de vérité.
Liste de contrôle de l'évaluation
Réglementation des requêtes en ligne et verticales requises
Domaine Google, emplacement codé, langue et pays
Contexts de bureau, de mobile et de tablette dans la portée
Les fenêtres de page et les modules de réponse facultatifs
Erreur HTTP, délai de traitement et gestion de la collection vide
FAQ
Les questions de l'API de recherche Google pour une évaluation fondée.
Utilisez ces réponses pour la sélection de produits, puis traitez la documentation actuelle et les demandes représentatives comme la source de vérité de la mise en œuvre.
Qu'est-ce que la API de recherche de Google retourne ?
L'API de recherche Google renvoie le contexte de la demande et les collections de résultats JSON analysées. Les résultats organiques sont documentés, tandis que la navigation et d'autres modules de réponse dépendent de la requête, du lieu, du périphérique et de la surface de recherche demandée.
Quels paramètres de recherche Google puis-je contrôler ?
Utilisez q pour la requête requise. Les contrôles optionnels documentés comprennent tbm, ibp, appareil, domaine, uule, hl, gl, start et num pour la surface de recherche, la présentation, la localisation et la pagination.
Quelles surfaces de recherche Google sont documentées ?
Laissez TBM non réglé pour la recherche Web régulière, ou utilisez des valeurs TBM documentées pour les images, vidéos, nouvelles et achats. Jobs utilise le contrôle IBP documenté. Validez la forme retournée pour les surfaces dont votre application a besoin.
Chaque réponse devrait-elle contenir les mêmes modules de résultats?
Les modules de résultats de Google varient selon la requête, le lieu, l'appareil et la verticale de recherche.
Quand devrais-je utiliser google_async ?
Utilisez le moteur google_async documenté séparément lorsque votre flux de travail doit soumettre une recherche Google et récupérer la charge utile SERP finie via l'API Snapshot. Le moteur google standard est le chemin de demande synchrone indiqué sur cette page.
Comment intégrer en toute sécurité l'API de recherche Google ?
Gardez api_key dans une variable de l'environnement côté serveur, les valeurs de requête de code URL, définissez un délai explicite et inspectez l'état HTTP avant de parser JSON. Préservez le contexte de la demande à côté des observations stockées.
Votre première observation sur Google
Testez une vraie requête dans le contexte sur lequel votre produit dépend.
Commencez par le moteur Google synchrone, validez les collections retournées et gardez l'empreinte digitale de la demande avec chaque observation.