Search for location suggestions
curl --request POST \
--url http://localhost:8000/api/v1/google-ads/locations/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"google_ads_customer_id": 123,
"query": "<string>",
"limit": 20,
"force_refresh": false
}
'import requests
url = "http://localhost:8000/api/v1/google-ads/locations/search"
payload = {
"google_ads_customer_id": 123,
"query": "<string>",
"limit": 20,
"force_refresh": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
google_ads_customer_id: 123,
query: '<string>',
limit: 20,
force_refresh: false
})
};
fetch('http://localhost:8000/api/v1/google-ads/locations/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8000",
CURLOPT_URL => "http://localhost:8000/api/v1/google-ads/locations/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'google_ads_customer_id' => 123,
'query' => '<string>',
'limit' => 20,
'force_refresh' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:8000/api/v1/google-ads/locations/search"
payload := strings.NewReader("{\n \"google_ads_customer_id\": 123,\n \"query\": \"<string>\",\n \"limit\": 20,\n \"force_refresh\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:8000/api/v1/google-ads/locations/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"google_ads_customer_id\": 123,\n \"query\": \"<string>\",\n \"limit\": 20,\n \"force_refresh\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8000/api/v1/google-ads/locations/search")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"google_ads_customer_id\": 123,\n \"query\": \"<string>\",\n \"limit\": 20,\n \"force_refresh\": false\n}"
response = http.request(request)
puts response.read_body{
"suggestions": [
{
"id": 123,
"name": "<string>",
"canonical_name": "<string>",
"type": "<string>",
"country_code": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Google Ads - Locations & Languages
Search for location suggestions
Search for location suggestions using GeoTargetConstantService with caching.
This endpoint provides autocomplete functionality for location selection. Returns location IDs that can be used for keyword analysis and campaign creation. Results are cached for 7 days unless force_refresh is True.
POST
/
api
/
v1
/
google-ads
/
locations
/
search
Search for location suggestions
curl --request POST \
--url http://localhost:8000/api/v1/google-ads/locations/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"google_ads_customer_id": 123,
"query": "<string>",
"limit": 20,
"force_refresh": false
}
'import requests
url = "http://localhost:8000/api/v1/google-ads/locations/search"
payload = {
"google_ads_customer_id": 123,
"query": "<string>",
"limit": 20,
"force_refresh": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
google_ads_customer_id: 123,
query: '<string>',
limit: 20,
force_refresh: false
})
};
fetch('http://localhost:8000/api/v1/google-ads/locations/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8000",
CURLOPT_URL => "http://localhost:8000/api/v1/google-ads/locations/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'google_ads_customer_id' => 123,
'query' => '<string>',
'limit' => 20,
'force_refresh' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:8000/api/v1/google-ads/locations/search"
payload := strings.NewReader("{\n \"google_ads_customer_id\": 123,\n \"query\": \"<string>\",\n \"limit\": 20,\n \"force_refresh\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:8000/api/v1/google-ads/locations/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"google_ads_customer_id\": 123,\n \"query\": \"<string>\",\n \"limit\": 20,\n \"force_refresh\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8000/api/v1/google-ads/locations/search")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"google_ads_customer_id\": 123,\n \"query\": \"<string>\",\n \"limit\": 20,\n \"force_refresh\": false\n}"
response = http.request(request)
puts response.read_body{
"suggestions": [
{
"id": 123,
"name": "<string>",
"canonical_name": "<string>",
"type": "<string>",
"country_code": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Query Parameters
Optional specific Token ID
Body
application/json
Request schema for location search.
Response
Successful Response
Response schema for location search.
List of location suggestions
Show child attributes
Show child attributes
⌘I