標準ライブラリだけでJavaからGoogleにクエリを送ります — serp.cheap を使うか、公式のJava SDK(Spring Boot連携付き)を導入することもできます。いずれにせよ、単純なHTTP+JSONのエンドポイントです。
まずは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"}'
完全な例
1ファイル、Java 17以上で実行可能です。リクエストには java.net.http、JSONにはJackson(com.fasterxml.jackson.core:jackson-databind)を使います。まず 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());
}
}
}
record がJSONをきれいにマッピングし、@JsonIgnoreProperties(ignoreUnknown = true) により新しいレスポンスフィールドが増えてもビルドが壊れることはありません。
Spring Boot
Springアプリでは、同じ呼び出しを RestClient(Spring 6.1以上)を使って @Service にまとめます:
@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);
}
}
公式のJava SDKは、この配線に加えてリトライ、ページネーション、型付きパラメータをSpring Bootスターターとして提供しています。SerpClient をインジェクトするだけで使えます。
押さえておきたいパラメータ
gl— 結果の国(us、de、brなど)。国別のローカルSEO を参照。hl— インターフェース言語。page— 1始まり。各ページは個別のリクエストです。ページネーション を参照。tbs— 期間フィルター(qdr:d= 過去1日)。パラメータ完全リファレンス を参照。
次に
serp.cheapを試す
上のファイルをコピーしてキーを追加すれば、Javaでライブのgoogle検索結果が手に入ります。登録で無料検索100回 — カード不要。その後は従量課金で$0.75/1kから、クレジットは12か月間有効です。
- 無料APIキーを取得 →
- カード払いがよいですか?serp.cheapは RapidAPI(約$0.90/1k)と Apify(約$1.50/1k)でも利用できます。