Skip to content

GET /bulk/jobs API

  • Bulk

List recent bulk jobs submitted by the caller.

Parameters
NameInTypeRequiredDescription
statusquerystringNoFilter bulk jobs by their current status.
afterquerystringNoReturn jobs created after the supplied ISO-8601 timestamp.
limitqueryintegerNoMaximum number of items to return.
cursorquerystringNoCursor returned by a previous `/bulk/jobs` response.
  • statusqueryOptional
    Typestring

    Filter bulk jobs by their current status.

  • afterqueryOptional
    Typestring

    Return jobs created after the supplied ISO-8601 timestamp.

  • limitqueryOptional
    Typeinteger

    Maximum number of items to return.

  • cursorqueryOptional
    Typestring

    Cursor returned by a previous `/bulk/jobs` response.

Sample responses
  • 200 Success — List of jobs ordered from newest to oldest.

    application/jsonBulkJobList

    {
    "cursor": "eyJwYWdlIjowfQ==",
    "jobs": [
    {
    "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"
    },
    "callback": {
    "url": "https://app.example.com/webhooks/geocoding",
    "secret": "whsec_example_secret_01",
    "signature_header": "X-Geobridge-Signature"
    },
    "options": {
    "output_format": "geojson",
    "truncate_at": 5
    },
    "metadata": {
    "batch_id": "sprint-42"
    },
    "statistics": {
    "total_records": 1000,
    "processed_records": 640,
    "successful_records": 638,
    "failed_records": 2,
    "last_record_id": "rec-640"
    }
    },
    {
    "id": "223e4567-e89b-12d3-a456-426614174000",
    "status": "succeeded",
    "submitted_at": "2024-03-17T09:15:00Z",
    "started_at": "2024-03-17T09:16:12Z",
    "completed_at": "2024-03-17T09:18:54Z",
    "input": {
    "transport": "s3",
    "url": "s3://geobridge-jobs/2024/03/17/customer.csv.gz",
    "compression": "gzip"
    },
    "callback": {
    "url": "https://app.example.com/webhooks/geocoding",
    "secret": "whsec_example_secret_02",
    "signature_header": "X-Geobridge-Signature"
    },
    "options": {
    "output_format": "ndjson"
    },
    "statistics": {
    "total_records": 5000,
    "processed_records": 5000,
    "successful_records": 4990,
    "failed_records": 10
    }
    }
    ],
    "next_cursor": "eyJwYWdlIjoxfQ=="
    }
  • 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."
    }
  • 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 list may be requested at most once 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 fetch job list from storage backend."
    }
Code samples

200 OK

Terminal window
# 200 OK — Lists processing jobs with pagination.
curl -s -G 'https://api-na.geobridge.io/v1/bulk/jobs' \
-H 'Accept: application/json' \
-H 'X-API-Key: YOUR_API_KEY' \
--data-urlencode 'status=processing' \
--data-urlencode 'limit=25' \
--data-urlencode 'cursor=eyJwYWdlIjowfQ=='

401 Unauthorized

Terminal window
# 401 Unauthorized — Using an invalid API key triggers authentication failure when listing jobs.
# Uses an invalid API key to trigger authentication errors.
curl -s -G 'https://api-na.geobridge.io/v1/bulk/jobs' \
-H 'Accept: application/json' \
-H 'X-API-Key: INVALID_API_KEY' \
--data-urlencode 'status=queued'

429 Too Many Requests

Terminal window
# 429 Too Many Requests — Polling the bulk job list too aggressively returns a rate limit error.
curl -s -G 'https://api-na.geobridge.io/v1/bulk/jobs' \
-H 'Accept: application/json' \
-H 'X-API-Key: YOUR_API_KEY' \
--data-urlencode 'status=processing' \
--data-urlencode 'limit=25' \
--data-urlencode 'cursor=eyJwYWdlIjoxfQ=='

500 Internal Server Error

Terminal window
# 500 Internal Server Error — Demonstrates error handling when the job listing endpoint fails.
curl -s -G 'https://api-na.geobridge.io/v1/bulk/jobs' \
-H 'Accept: application/json' \
-H 'X-API-Key: YOUR_API_KEY' \
--data-urlencode 'status=succeeded' \
--data-urlencode 'limit=10'
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.

Query parameters

Filter bulk jobs by their current status.

Return jobs created after the supplied ISO-8601 timestamp.

Maximum number of items to return.

Cursor returned by a previous `/bulk/jobs` response.

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