Interrogez Google depuis Java avec rien d’autre que la bibliothèque standard, en utilisant serp.cheap — ou intégrez le SDK Java officiel (intégration Spring Boot incluse). Dans les deux cas, c’est un simple endpoint HTTP+JSON.
D’abord, un test rapide avec curl :
curl -X POST https://api.serp.cheap/v1/search \
-H "X-API-Key: $SERP_CHEAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q":"best electric cars 2026","gl":"us"}'
L’exemple complet
Un seul fichier, exécutable sur Java 17+ avec java.net.http pour la requête et Jackson pour le JSON (com.fasterxml.jackson.core:jackson-databind). Définissez d’abord SERP_CHEAP_API_KEY.
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.List;
public class SerpSearch {
static final ObjectMapper M = new ObjectMapper();
@JsonIgnoreProperties(ignoreUnknown = true)
record Organic(int position, String title, String link, String snippet) {}
@JsonIgnoreProperties(ignoreUnknown = true)
record SearchResponse(List<Organic> organic) {}
public static void main(String[] args) throws Exception {
String key = System.getenv("SERP_CHEAP_API_KEY");
String body = M.writeValueAsString(new java.util.HashMap<>() {{
put("q", "best electric cars 2026");
put("gl", "us");
}});
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.serp.cheap/v1/search"))
.header("X-API-Key", key)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
SearchResponse data = M.readValue(res.body(), SearchResponse.class);
for (Organic r : data.organic()) {
System.out.printf("%2d. %s%n %s%n", r.position(), r.title(), r.link());
}
}
}
Les records mappent proprement le JSON, et @JsonIgnoreProperties(ignoreUnknown = true) garantit que l’ajout de nouveaux champs dans la réponse ne cassera jamais votre build.
Spring Boot
Dans une application Spring, encapsulez le même appel dans un @Service avec RestClient (Spring 6.1+) :
@Service
public class SerpClient {
private final RestClient http = RestClient.builder()
.baseUrl("https://api.serp.cheap")
.defaultHeader("X-API-Key", System.getenv("SERP_CHEAP_API_KEY"))
.build();
public SearchResponse search(String q, String gl) {
return http.post().uri("/v1/search")
.body(java.util.Map.of("q", q, "gl", gl))
.retrieve()
.body(SearchResponse.class);
}
}
Le SDK Java officiel fournit ce câblage — avec en plus les retries, la pagination et des paramètres typés — sous forme de starter Spring Boot : il vous suffit d’injecter SerpClient et c’est parti.
Les paramètres à connaître
gl— pays des résultats (us,de,br, …). Voir le SEO local par pays.hl— langue de l’interface.page— indexée à partir de 1 ; chaque page est une requête distincte. Voir la pagination.tbs— filtre temporel (qdr:d= dernières 24 heures). Voir la référence complète des paramètres.
Suite
Essayez serp.cheap
Copiez le fichier ci-dessus, ajoutez votre clé, et vous obtenez des résultats Google en direct en Java. 100 recherches gratuites à l’inscription — sans carte bancaire ; puis paiement à l’usage dès 0,75 $/1k, et les crédits restent valables 12 mois.
- Obtenez votre clé API gratuite →
- Vous préférez payer par carte ? serp.cheap est aussi disponible sur RapidAPI (~0,90 $/1k) et Apify (~1,50 $/1k).