Skip to content

Jobs API

Base URL: https://dev.mapprism.com/ordo

All endpoints require Authorization: Bearer <API_TOKEN>.


POST /jobs

Submit a new job.

Request body:

json
{
  "recipe": { ... },        // inline recipe or recipe_id (see below)
  "inputs": { ... },        // artifact map — required
  "params": { ... },        // per-step params — required if steps declare param_keys
  "outputs": { ... }        // artifact destination declarations — optional
}

See Submitting a Job for a full worked example.

Response (201):

json
{ "id": 4 }

Returns the new job's integer ID.

Errors:

  • 400 — validation failed (missing params, unknown executor, bad artifact refs, etc.)
  • 401 — missing or invalid auth token

GET /jobs/:id

Poll a job's current state.

Response (200):

json
{
  "job": {
    "id": 3,
    "recipe_id": 2,
    "status": "success",
    "created_at": "2026-02-24T18:09:31.276Z",
    "started_at": "2026-02-24T18:09:50.082Z",
    "finished_at": "2026-02-24T18:12:05.483Z",
    "error": null,
    "params": {
      "reproject": {
        "source_epsg": "EPSG:2271",
        "target_epsg": "EPSG:3857"
      }
    }
  },
  "progress": {
    "percentage": 1,
    "completed_steps": 2,
    "total_steps": 2
  },
  "duration_ms": 135401,
  "timeline": [
    {
      "step": "reproject",
      "type": "REPROJECT_LAS",
      "status": "success",
      "started_at": "2026-02-24T18:09:50.072Z",
      "finished_at": "2026-02-24T18:10:15.505Z",
      "duration_ms": 25433
    }
  ],
  "steps": [
    {
      "job_id": 3,
      "step_id": "reproject",
      "step_type": "REPROJECT_LAS",
      "status": "success",
      "started_at": "2026-02-24T18:09:50.072Z",
      "finished_at": "2026-02-24T18:10:15.505Z",
      "error": null
    }
  ],
  "artifacts": [ ... ],
  "outputs": [
    {
      "artifact_name": "step:ept.output_ept",
      "path": "development/results/piney-dam/ept"
    }
  ]
}

Job statuses: pendingrunningsuccess | failed | partial

Step statuses: pendingrunningsuccess | failed | skipped

Errors:

  • 404 — job not found
  • 401 — missing or invalid auth token

GET /jobs

List all jobs.

Response (200):

json
[
  {
    "id": 3,
    "recipe_id": 2,
    "status": "success",
    "created_at": "2026-02-24T18:09:31.276Z",
    ...
  }
]

Returns an array of job objects. Fields match the job object from GET /jobs/:id.