Запрашивайте Google из Java, используя только стандартную библиотеку и 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"}'
Полный пример
Один файл, запускается на Java 17+ с java.net.http для запроса и Jackson для JSON (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-приложении оберните тот же вызов в @Service, используя 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);
}
}
Официальный Java SDK поставляет эту обвязку — плюс повторы, пагинацию и типизированные параметры — в виде стартера для Spring Boot, так что вы просто внедряете SerpClient и работаете.
Параметры, которые стоит знать
gl— страна результатов (us,de,br, …). См. локальное SEO по странам.hl— язык интерфейса.page— нумерация с 1; каждая страница — отдельный запрос. См. пагинацию.tbs— фильтр по времени (qdr:d= за последний день). См. полный справочник параметров.
Далее
Попробуйте serp.cheap
Скопируйте файл выше, добавьте свой ключ — и у вас живые результаты Google в Java. 100 бесплатных запросов при регистрации — без карты; далее оплата по факту от $0.75/1k, а кредиты действуют 12 месяцев.
- Получить бесплатный API-ключ →
- Предпочитаете оплату картой? serp.cheap также доступен на RapidAPI (
$0.90/1k) и Apify ($1.50/1k).