Skip to content

GET /bulk/jobs/{job_id} API

  • Bulk

Retrieve the latest status for a bulk job.

Parameters
NameInTypeRequiredDescription
job_idpathstringYesUnique identifier for the asynchronous bulk job.
  • job_idpathRequired
    Typestring

    Unique identifier for the asynchronous bulk job.

Sample responses
  • 200 Success — Current job details.

    application/jsonBulkJob

    {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "status": "processing",
    "submitted_at": "2024-03-18T12:40:00Z",
    "started_at": "2024-03-18T12:41:05Z",
    "input": {
    "transport": "https",
    "url": "https://files.example.com/batches/sprint-42.csv",
    "compression": "gzip"
    },
    "callback": {
    "url": "https://app.example.com/webhooks/geocoding",
    "secret": "whsec_example_secret_03",
    "signature_header": "X-Geobridge-Signature",
    "retry_policy": {
    "max_attempts": 5,
    "initial_delay_seconds": 30,
    "strategy": "exponential"
    }
    },
    "options": {
    "output_format": "geojson",
    "truncate_at": 5
    },
    "metadata": {
    "batch_id": "sprint-42",
    "requested_by": "ops@example.com"
    },
    "statistics": {
    "total_records": 1000,
    "processed_records": 640,
    "successful_records": 638,
    "failed_records": 2,
    "last_record_id": "rec-640"
    },
    "delivery_attempts": [
    {
    "attempt": 1,
    "status_code": 500,
    "delivered_at": "2024-03-18T12:45:20Z",
    "duration_ms": 1320,
    "error": "Callback endpoint returned 500."
    }
    ]
    }
  • 401 Client error — Missing or invalid API key.

    application/problem+jsonProblem

    {
    "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+jsonProblem

    {
    "type": "https://docs.geobridge.io/problems/not-found",
    "title": "Not Found",
    "status": 404,
    "detail": "No job exists with id 00000000-0000-4000-8000-000000000000."
    }
  • 429 Client error — Too many requests. Retry after the rate limit resets.

    application/problem+jsonProblem

    {
    "type": "https://docs.geobridge.io/problems/too-many-requests",
    "title": "Too Many Requests",
    "status": 429,
    "detail": "Job status may only be polled twice per second."
    }
  • 500 Server error — Unexpected server error.

    application/problem+jsonProblem

    {
    "type": "https://docs.geobridge.io/problems/internal-error",
    "title": "Internal Server Error",
    "status": 500,
    "detail": "Failed to deserialize job payload from storage."
    }
Code samples

200 OK

Terminal window
# 200 OK — Polls the job status for an in-progress bulk submission.
curl -s -X GET 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000' \
-H 'Accept: application/json' \
-H 'X-API-Key: YOUR_API_KEY'

401 Unauthorized

Terminal window
# 401 Unauthorized — Missing API key while polling job status.
# 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' \
-H 'Accept: application/json'

429 Too Many Requests

Terminal window
# 429 Too Many Requests — Rate limiting while polling an individual job status.
curl -s 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000' \
-H 'Accept: application/json' \
-H 'X-API-Key: YOUR_API_KEY'

404 Not Found

Terminal window
# 404 Not Found — Polling a job id that does not exist returns 404.
curl -s -X GET 'https://api-na.geobridge.io/v1/bulk/jobs/00000000-0000-4000-8000-000000000000' \
-H 'Accept: application/json' \
-H 'X-API-Key: YOUR_API_KEY'

500 Internal Server Error

Terminal window
# 500 Internal Server Error — Handles unexpected failures when polling job status.
curl -s -X GET 'https://api-na.geobridge.io/v1/bulk/jobs/123e4567-e89b-12d3-a456-426614174000' \
-H 'Accept: application/json' \
-H 'X-API-Key: YOUR_API_KEY'
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.

Path parameters

Unique identifier for the asynchronous bulk job.

Configure the request and select “Send request” to preview the response.