GET /place API
GET/place
Section titled “GET/place”Look up details for specific records by Pelias `gid`.
Fetches full feature details for one or more identifiers returned by search or autocomplete operations.
Parameters
Parameters
Section titled “ Parameters ”| Name | In | Type | Required | Description |
|---|---|---|---|---|
ids | query | string | Yes | Comma separated list of Pelias global identifiers (`gid`). |
categories | query | string | No | Set to any value to include category metadata in `/place` responses. |
idsqueryRequiredComma separated list of Pelias global identifiers (`gid`).
categoriesqueryOptionalSet to any value to include category metadata in `/place` responses.
Sample responses
Sample responses
Section titled “ Sample responses ”- 200 Success — Matching records for the supplied identifiers.
application/json → GeoJSONFeatureCollection
{"type": "FeatureCollection","geocoding": {"version": "1.0.0","timestamp": "2024-03-18T12:37:22Z","engine": {"name": "pelias","author": "geobridge","version": "2.14.0"},"query": {"ids": ["openstreetmap:venue:way/5013364"]}},"features": [{"type": "Feature","geometry": {"type": "Point","coordinates": [2.294481,48.85837]},"properties": {"id": "5013364","gid": "openstreetmap:venue:way/5013364","layer": "venue","source": "openstreetmap","source_id": "way/5013364","name": "Tour Eiffel","label": "Tour Eiffel, Paris 7e Arrondissement, Île-de-France, France","confidence": 0.99,"accuracy": "point","continent": "Europe","country": "France","country_a": "FRA","region": "Île-de-France","county": "Paris","locality": "Paris","neighbourhood": "Gros-Caillou","postalcode": "75007","categories": ["tourist_attraction","landmark"]}}]}Details for a single venue gid.
- 400 Client error — Invalid identifier supplied.
application/json → GeoJSONFeatureCollection
{"type": "FeatureCollection","geocoding": {"version": "1.0.0","timestamp": "2024-03-18T12:37:22Z","query": {"ids": ["openstreetmap|venue|5013364"]},"errors": [{"code": "INVALID_GID","message": "ids must follow the source:layer:id format."}]},"features": []}Identifier failed validation.
- 404 Client error — None of the supplied identifiers were found.
application/json → GeoJSONFeatureCollection
{"type": "FeatureCollection","geocoding": {"version": "1.0.0","timestamp": "2024-03-18T12:37:22Z","query": {"ids": ["whosonfirst:locality:999999999999"]},"errors": [{"code": "NOT_FOUND","message": "No records matched the supplied identifiers."}]},"features": []}Unknown gid provided.
- 500 Server error — Unexpected server error.
application/json → GeoJSONFeatureCollection
{"type": "FeatureCollection","geocoding": {"version": "1.0.0","query": {"ids": ["openstreetmap:venue:way/5013364"]},"errors": [{"code": "INTERNAL_SERVER_ERROR","message": "Unexpected exception loading place details."}]},"features": []}Example payload for a failed place lookup.
Code samples
Code samples
Section titled “ Code samples ”200 OK
# 200 OK — Fetches details for an OpenStreetMap venue gid.curl -s -G 'https://api-na.geobridge.io/v1/place' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY' \ --data-urlencode 'ids=openstreetmap:venue:way/5013364'// 200 OK — Fetches details for an OpenStreetMap venue gid.// Node.js 18+ with global fetch support.const params = new URLSearchParams({ "ids": "openstreetmap:venue:way/5013364"});const requestUrl = `https://api-na.geobridge.io/v1/place` + `?${params.toString()}`;const response = await fetch(requestUrl, { method: 'GET', headers: { 'X-API-Key': 'YOUR_API_KEY' }, signal: AbortSignal.timeout(10000)});console.log(response.status);const payload = await response.text();console.log(payload);# 200 OK — Fetches details for an OpenStreetMap venue gid.import requests
url = 'https://api-na.geobridge.io/v1/place'params = { "ids": "openstreetmap:venue:way/5013364"}headers = { "X-API-Key": "YOUR_API_KEY"}payload = Noneresponse = requests.get(url, params=params, headers=headers, timeout=10)print(response.status_code)
try: print(response.json())except ValueError: print(response.text)// 200 OK — Fetches details for an OpenStreetMap venue gid.package main
import ( "fmt" "io" "log" "net/http" "net/url" "time")
func main() { client := &http.Client{Timeout: 10 * time.Second} u, err := url.Parse("https://api-na.geobridge.io/v1/place") if err != nil { log.Fatal(err) } q := u.Query() q.Set("ids", "openstreetmap:venue:way/5013364") u.RawQuery = q.Encode() req, err := http.NewRequest(http.MethodGet, u.String(), nil) if err != nil { log.Fatal(err) } req.Header.Set("Accept", "application/json") req.Header.Set("X-API-Key", "YOUR_API_KEY") resp, err := client.Do(req) if err != nil { log.Fatal(err) } defer resp.Body.Close() fmt.Println(resp.StatusCode) payload, _ := io.ReadAll(resp.Body) fmt.Println(string(payload))}// 200 OK — Fetches details for an OpenStreetMap venue gid.import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.time.Duration;
public class Example { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api-na.geobridge.io/v1/place?ids=openstreetmap%3Avenue%3Away%2F5013364")) .header("Accept", "application/json") .header("X-API-Key", "YOUR_API_KEY") .method("GET", HttpRequest.BodyPublishers.noBody()) .timeout(Duration.ofSeconds(10)) .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body()); }}// 200 OK — Fetches details for an OpenStreetMap venue gid.using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;
class Program{ static async Task Main() { using var client = new HttpClient(); using var request = new HttpRequestMessage(new HttpMethod("GET"), "https://api-na.geobridge.io/v1/place?ids=openstreetmap%3Avenue%3Away%2F5013364"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("X-API-Key", "YOUR_API_KEY"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode); Console.WriteLine(await response.Content.ReadAsStringAsync()); }}400 Bad Request
# 400 Bad Request — Invalid gid format demonstrates request validation.curl -s -G 'https://api-na.geobridge.io/v1/place' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY' \ --data-urlencode 'ids=openstreetmap|venue|5013364'// 400 Bad Request — Invalid gid format demonstrates request validation.// Node.js 18+ with global fetch support.const params = new URLSearchParams({ "ids": "openstreetmap|venue|5013364"});const requestUrl = `https://api-na.geobridge.io/v1/place` + `?${params.toString()}`;const response = await fetch(requestUrl, { method: 'GET', headers: { 'X-API-Key': 'YOUR_API_KEY' }, signal: AbortSignal.timeout(10000)});console.log(response.status);const payload = await response.text();console.log(payload);# 400 Bad Request — Invalid gid format demonstrates request validation.import requests
url = 'https://api-na.geobridge.io/v1/place'params = { "ids": "openstreetmap|venue|5013364"}headers = { "X-API-Key": "YOUR_API_KEY"}payload = Noneresponse = requests.get(url, params=params, headers=headers, timeout=10)print(response.status_code)
try: print(response.json())except ValueError: print(response.text)// 400 Bad Request — Invalid gid format demonstrates request validation.package main
import ( "fmt" "io" "log" "net/http" "net/url" "time")
func main() { client := &http.Client{Timeout: 10 * time.Second} u, err := url.Parse("https://api-na.geobridge.io/v1/place") if err != nil { log.Fatal(err) } q := u.Query() q.Set("ids", "openstreetmap|venue|5013364") u.RawQuery = q.Encode() req, err := http.NewRequest(http.MethodGet, u.String(), nil) if err != nil { log.Fatal(err) } req.Header.Set("Accept", "application/json") req.Header.Set("X-API-Key", "YOUR_API_KEY") resp, err := client.Do(req) if err != nil { log.Fatal(err) } defer resp.Body.Close() fmt.Println(resp.StatusCode) payload, _ := io.ReadAll(resp.Body) fmt.Println(string(payload))}// 400 Bad Request — Invalid gid format demonstrates request validation.import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.time.Duration;
public class Example { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api-na.geobridge.io/v1/place?ids=openstreetmap%7Cvenue%7C5013364")) .header("Accept", "application/json") .header("X-API-Key", "YOUR_API_KEY") .method("GET", HttpRequest.BodyPublishers.noBody()) .timeout(Duration.ofSeconds(10)) .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body()); }}// 400 Bad Request — Invalid gid format demonstrates request validation.using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;
class Program{ static async Task Main() { using var client = new HttpClient(); using var request = new HttpRequestMessage(new HttpMethod("GET"), "https://api-na.geobridge.io/v1/place?ids=openstreetmap%7Cvenue%7C5013364"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("X-API-Key", "YOUR_API_KEY"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode); Console.WriteLine(await response.Content.ReadAsStringAsync()); }}404 Not Found
# 404 Not Found — Unknown gid returns an empty result set and 404.curl -s -G 'https://api-na.geobridge.io/v1/place' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY' \ --data-urlencode 'ids=whosonfirst:locality:999999999999'// 404 Not Found — Unknown gid returns an empty result set and 404.// Node.js 18+ with global fetch support.const params = new URLSearchParams({ "ids": "whosonfirst:locality:999999999999"});const requestUrl = `https://api-na.geobridge.io/v1/place` + `?${params.toString()}`;const response = await fetch(requestUrl, { method: 'GET', headers: { 'X-API-Key': 'YOUR_API_KEY' }, signal: AbortSignal.timeout(10000)});console.log(response.status);const payload = await response.text();console.log(payload);# 404 Not Found — Unknown gid returns an empty result set and 404.import requests
url = 'https://api-na.geobridge.io/v1/place'params = { "ids": "whosonfirst:locality:999999999999"}headers = { "X-API-Key": "YOUR_API_KEY"}payload = Noneresponse = requests.get(url, params=params, headers=headers, timeout=10)print(response.status_code)
try: print(response.json())except ValueError: print(response.text)// 404 Not Found — Unknown gid returns an empty result set and 404.package main
import ( "fmt" "io" "log" "net/http" "net/url" "time")
func main() { client := &http.Client{Timeout: 10 * time.Second} u, err := url.Parse("https://api-na.geobridge.io/v1/place") if err != nil { log.Fatal(err) } q := u.Query() q.Set("ids", "whosonfirst:locality:999999999999") u.RawQuery = q.Encode() req, err := http.NewRequest(http.MethodGet, u.String(), nil) if err != nil { log.Fatal(err) } req.Header.Set("Accept", "application/json") req.Header.Set("X-API-Key", "YOUR_API_KEY") resp, err := client.Do(req) if err != nil { log.Fatal(err) } defer resp.Body.Close() fmt.Println(resp.StatusCode) payload, _ := io.ReadAll(resp.Body) fmt.Println(string(payload))}// 404 Not Found — Unknown gid returns an empty result set and 404.import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.time.Duration;
public class Example { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api-na.geobridge.io/v1/place?ids=whosonfirst%3Alocality%3A999999999999")) .header("Accept", "application/json") .header("X-API-Key", "YOUR_API_KEY") .method("GET", HttpRequest.BodyPublishers.noBody()) .timeout(Duration.ofSeconds(10)) .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body()); }}// 404 Not Found — Unknown gid returns an empty result set and 404.using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;
class Program{ static async Task Main() { using var client = new HttpClient(); using var request = new HttpRequestMessage(new HttpMethod("GET"), "https://api-na.geobridge.io/v1/place?ids=whosonfirst%3Alocality%3A999999999999"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("X-API-Key", "YOUR_API_KEY"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode); Console.WriteLine(await response.Content.ReadAsStringAsync()); }}500 Internal Server Error
# 500 Internal Server Error — Handles server-side failures when fetching place details.curl -s -G 'https://api-na.geobridge.io/v1/place' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY' \ --data-urlencode 'ids=openstreetmap:venue:way/5013364'// 500 Internal Server Error — Handles server-side failures when fetching place details.// Node.js 18+ with global fetch support.const params = new URLSearchParams({ "ids": "openstreetmap:venue:way/5013364"});const requestUrl = `https://api-na.geobridge.io/v1/place` + `?${params.toString()}`;const response = await fetch(requestUrl, { method: 'GET', headers: { 'X-API-Key': 'YOUR_API_KEY' }, signal: AbortSignal.timeout(10000)});console.log(response.status);const payload = await response.text();console.log(payload);# 500 Internal Server Error — Handles server-side failures when fetching place details.import requests
url = 'https://api-na.geobridge.io/v1/place'params = { "ids": "openstreetmap:venue:way/5013364"}headers = { "X-API-Key": "YOUR_API_KEY"}payload = Noneresponse = requests.get(url, params=params, headers=headers, timeout=10)print(response.status_code)
try: print(response.json())except ValueError: print(response.text)// 500 Internal Server Error — Handles server-side failures when fetching place details.package main
import ( "fmt" "io" "log" "net/http" "net/url" "time")
func main() { client := &http.Client{Timeout: 10 * time.Second} u, err := url.Parse("https://api-na.geobridge.io/v1/place") if err != nil { log.Fatal(err) } q := u.Query() q.Set("ids", "openstreetmap:venue:way/5013364") u.RawQuery = q.Encode() req, err := http.NewRequest(http.MethodGet, u.String(), nil) if err != nil { log.Fatal(err) } req.Header.Set("Accept", "application/json") req.Header.Set("X-API-Key", "YOUR_API_KEY") resp, err := client.Do(req) if err != nil { log.Fatal(err) } defer resp.Body.Close() fmt.Println(resp.StatusCode) payload, _ := io.ReadAll(resp.Body) fmt.Println(string(payload))}// 500 Internal Server Error — Handles server-side failures when fetching place details.import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.time.Duration;
public class Example { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api-na.geobridge.io/v1/place?ids=openstreetmap%3Avenue%3Away%2F5013364")) .header("Accept", "application/json") .header("X-API-Key", "YOUR_API_KEY") .method("GET", HttpRequest.BodyPublishers.noBody()) .timeout(Duration.ofSeconds(10)) .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body()); }}// 500 Internal Server Error — Handles server-side failures when fetching place details.using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;
class Program{ static async Task Main() { using var client = new HttpClient(); using var request = new HttpRequestMessage(new HttpMethod("GET"), "https://api-na.geobridge.io/v1/place?ids=openstreetmap%3Avenue%3Away%2F5013364"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("X-API-Key", "YOUR_API_KEY"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode); Console.WriteLine(await response.Content.ReadAsStringAsync()); }}Try it live
Try it live
Section titled “ Try it live ”Save your API key once and reuse it across endpoints. Configure the request below and send it directly from the docs.
Stored locally in your browser. Removing it clears access for this device.
Configure the request and select “Send request” to preview the response.