GET /bulk/jobs/{job_id}/results API
GET/bulk/jobs/{job_id}/results
Section titled “GET/bulk/jobs/{job_id}/results”Retrieve results for a completed bulk job.
Returns the contents of the completed job in the requested representation. When
`format=ndjson` and the `Accept` header prefers `application/x-ndjson`, the
response streams newline-delimited JSON so clients can begin processing
without waiting for the full payload.
Parameters
Parameters
Section titled “ Parameters ”| Name | In | Type | Required | Description |
|---|---|---|---|---|
job_id | path | string | Yes | Unique identifier for the asynchronous bulk job. |
cursor | query | string | No | Cursor provided by the previous results page for pagination. |
format | query | string | No | Preferred representation for bulk job results. Use `format=ndjson` together with an `Accept: application/x-ndjson` header to stream newline-delimited output. |
job_idpathRequiredUnique identifier for the asynchronous bulk job.
cursorqueryOptionalCursor provided by the previous results page for pagination.
formatqueryOptionalPreferred representation for bulk job results. Use `format=ndjson` together with an `Accept: application/x-ndjson` header to stream newline-delimited output.
Sample responses
Sample responses
Section titled “ Sample responses ”- 200 Success — Results for the requested job, or a URL to download them when large.
application/json → BulkJobResults
{"job": {"id": "123e4567-e89b-12d3-a456-426614174000","status": "succeeded","submitted_at": "2024-03-18T12:40:00Z","started_at": "2024-03-18T12:41:05Z","completed_at": "2024-03-18T12:49:12Z","input": {"transport": "https","url": "https://files.example.com/batches/sprint-42.csv"},"callback": {"url": "https://app.example.com/webhooks/geocoding","secret": "whsec_example_secret_04","signature_header": "X-Geobridge-Signature"},"options": {"output_format": "geojson","truncate_at": 5},"statistics": {"total_records": 1000,"processed_records": 1000,"successful_records": 995,"failed_records": 5}},"format": "geojson","cursor": "eyJwYWdlIjowfQ==","results": {"type": "FeatureCollection","geocoding": {"version": "1.0.0","query": {"job_id": "123e4567-e89b-12d3-a456-426614174000"}},"features": [{"type": "Feature","geometry": {"type": "Point","coordinates": [-73.991069,40.735863]},"properties": {"id": "rec-001","gid": "openaddresses:address:us/ny/new-york/30-west-26th-street","layer": "address","source": "openaddresses","name": "30 West 26th Street","label": "30 West 26th Street, Manhattan, New York, NY, USA","confidence": 0.95,"housenumber": "30","street": "West 26th Street","locality": "New York","region": "New York","country_a": "USA"}}]}}application/x-ndjson (string)
{"record_id":"rec-001","status":"matched","feature":{"gid":"openaddresses:address:us/ny/new-york/30-west-26th-street","confidence":0.95}}{"record_id":"rec-002","status":"matched","feature":{"gid":"openaddresses:address:us/ny/new-york/32-west-26th-street","confidence":0.92}} - 401 Client error — Missing or invalid API key.
application/problem+json → Problem
{"type": "https://docs.geobridge.io/problems/unauthorized","title": "Unauthorized","status": 401,"detail": "API key is missing or invalid."} - 404 Client error — Requested job was not found.
application/problem+json → Problem
{"type": "https://docs.geobridge.io/problems/not-found","title": "Not Found","status": 404,"detail": "No job exists with id 00000000-0000-4000-8000-000000000000."} - 409 Client error — Job has not completed yet; results are unavailable.
application/problem+json → Problem
{"type": "https://docs.geobridge.io/problems/conflict","title": "Conflict","status": 409,"detail": "Job 123e4567-e89b-12d3-a456-426614174000 has not completed yet."} - 429 Client error — Too many requests. Retry after the rate limit resets.
application/problem+json → Problem
{"type": "https://docs.geobridge.io/problems/too-many-requests","title": "Too Many Requests","status": 429,"detail": "Job results may only be requested once every 5 seconds."} - 500 Server error — Unexpected server error.
application/problem+json → Problem
{"type": "https://docs.geobridge.io/problems/internal-error","title": "Internal Server Error","status": 500,"detail": "Failed to read results archive from storage."}
Code samples
Code samples
Section titled “ Code samples ”200 OK
# 200 OK — Downloads inline GeoJSON results for a completed job.curl -s -G 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY' \ --data-urlencode 'format=geojson'// 200 OK — Downloads inline GeoJSON results for a completed job.// Node.js 18+ with global fetch support.const params = new URLSearchParams({ "format": "geojson"});const requestUrl = `https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results` + `?${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 — Downloads inline GeoJSON results for a completed job.import requests
url = 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results'params = { "format": "geojson"}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 — Downloads inline GeoJSON results for a completed job.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results") if err != nil { log.Fatal(err) } q := u.Query() q.Set("format", "geojson") 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 — Downloads inline GeoJSON results for a completed job.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results?format=geojson")) .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 — Downloads inline GeoJSON results for a completed job.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results?format=geojson"); 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()); }}200 OK (NDJSON stream)
# 200 OK — Streams NDJSON results as they are produced.curl -s -N 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results?format=ndjson' \ -H 'Accept: application/x-ndjson' \ -H 'X-API-Key: YOUR_API_KEY'401 Unauthorized
# 401 Unauthorized — Missing API key when fetching job results.# Deliberately omits X-API-Key header to demonstrate 401 Unauthorized.curl -s -X GET 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results' \ -H 'Accept: application/json'// 401 Unauthorized — Missing API key when fetching job results.// Missing X-API-Key header is intentional to trigger 401.// Node.js 18+ with global fetch support.const requestUrl = 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results';const response = await fetch(requestUrl, { method: 'GET', headers: {}, signal: AbortSignal.timeout(10000)});console.log(response.status);const payload = await response.text();console.log(payload);# 401 Unauthorized — Missing API key when fetching job results.import requests
url = 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results'params = Noneheaders = {}payload = Noneresponse = requests.get(url, params=params, headers=headers, timeout=10)print(response.status_code)
try: print(response.json())except ValueError: print(response.text)// 401 Unauthorized — Missing API key when fetching job results.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results") if err != nil { log.Fatal(err) } req, err := http.NewRequest(http.MethodGet, u.String(), nil) if err != nil { log.Fatal(err) } req.Header.Set("Accept", "application/json") 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))}// 401 Unauthorized — Missing API key when fetching job results.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results")) .header("Accept", "application/json") .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()); }}// 401 Unauthorized — Missing API key when fetching job results.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results"); request.Headers.Add("Accept", "application/json"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode); Console.WriteLine(await response.Content.ReadAsStringAsync()); }}429 Too Many Requests
# 429 Too Many Requests — Fetching job results too frequently triggers rate limiting.curl -s -G 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY' \ --data-urlencode 'format=geojson'// 429 Too Many Requests — Fetching job results too frequently triggers rate limiting.// Node.js 18+ with global fetch support.const params = new URLSearchParams({ format: 'geojson' });const requestUrl = `https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results?${params.toString()}`;const response = await fetch(requestUrl, { method: 'GET', headers: { 'Accept': 'application/json', 'X-API-Key': 'YOUR_API_KEY' }, signal: AbortSignal.timeout(10000)});console.log(response.status);const payload = await response.text();console.log(payload);# 429 Too Many Requests — Fetching job results too frequently triggers rate limiting.import requests
url = 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results'params = { "format": "geojson"}headers = { "Accept": "application/json", "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)// 429 Too Many Requests — Fetching job results too frequently triggers rate limiting.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results") if err != nil { log.Fatal(err) } q := u.Query() q.Set("format", "geojson") 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))}// 429 Too Many Requests — Fetching job results too frequently triggers rate limiting.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results?format=geojson")) .header("Accept", "application/json") .header("X-API-Key", "YOUR_API_KEY") .timeout(Duration.ofSeconds(10)) .GET() .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body()); }}// 429 Too Many Requests — Fetching job results too frequently triggers rate limiting.using System;using System.Net.Http;using System.Threading.Tasks;
class Program{ static async Task Main() { using var client = new HttpClient(); using var request = new HttpRequestMessage(HttpMethod.Get, "https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results?format=geojson"); 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 — Requesting results for an unknown job returns 404.curl -s -X GET 'https://api-na.geobridge.io/v1/bulk/jobs/00000000-0000-4000-8000-000000000000/results' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY'// 404 Not Found — Requesting results for an unknown job returns 404.// Node.js 18+ with global fetch support.const requestUrl = 'https://api-na.geobridge.io/v1/bulk/jobs/00000000-0000-4000-8000-000000000000/results';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 — Requesting results for an unknown job returns 404.import requests
url = 'https://api-na.geobridge.io/v1/bulk/jobs/00000000-0000-4000-8000-000000000000/results'params = Noneheaders = { "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 — Requesting results for an unknown job returns 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/bulk/jobs/00000000-0000-4000-8000-000000000000/results") if err != nil { log.Fatal(err) } 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 — Requesting results for an unknown job returns 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/bulk/jobs/00000000-0000-4000-8000-000000000000/results")) .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 — Requesting results for an unknown job returns 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/bulk/jobs/00000000-0000-4000-8000-000000000000/results"); 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()); }}409 Conflict
# 409 Conflict — Job still processing, so results are not yet available.curl -s -X GET 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY'// 409 Conflict — Job still processing, so results are not yet available.// Node.js 18+ with global fetch support.const requestUrl = 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results';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);# 409 Conflict — Job still processing, so results are not yet available.import requests
url = 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results'params = Noneheaders = { "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)// 409 Conflict — Job still processing, so results are not yet available.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results") if err != nil { log.Fatal(err) } 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))}// 409 Conflict — Job still processing, so results are not yet available.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results")) .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()); }}// 409 Conflict — Job still processing, so results are not yet available.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results"); 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 errors when retrieving job results.curl -s -X GET 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results' \ -H 'Accept: application/json' \ -H 'X-API-Key: YOUR_API_KEY'// 500 Internal Server Error — Handles server errors when retrieving job results.// Node.js 18+ with global fetch support.const requestUrl = 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results';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 errors when retrieving job results.import requests
url = 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results'params = Noneheaders = { "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 errors when retrieving job results.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results") if err != nil { log.Fatal(err) } 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 errors when retrieving job results.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results")) .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 errors when retrieving job results.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/bulk/jobs/123e4567-e89b-12d3-a456-426614174000/results"); 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.