Skip to content

Jobs

Every search you run creates a job in your history. With the Jobs API, you can list those jobs, inspect them, share them and delete them. Jobs are private to the user who created them.

Endpoints

Method Path Auth Purpose
GET /api/jobs Required List your jobs, paginated
GET /api/jobs/<job_id> Required A single job
POST /api/jobs/<job_id>/sync Required Refresh a job from the search service
POST /api/jobs/<job_id>/log Required Append progress log entries
DELETE /api/jobs/<job_id> Required Delete a job
POST /api/jobs/<job_id>/share Required Create a share link
POST /api/jobs/<job_id>/unshare Required Revoke the share link

List jobs

curl "https://malva.mdc-berlin.de/api/jobs?page=1&limit=20" \
  -H "Authorization: Bearer malva_..."
{
  "jobs": [{"id": "job-uuid", "query": "CD3E MS4A1", "status": "completed"}],
  "total": 7,
  "page": 1
}

The limit is at most 50. Each job contains the query, the status, the creation time and any artifacts, for example the search job IDs and share token.

A single job

curl https://malva.mdc-berlin.de/api/jobs/<job_id> \
  -H "Authorization: Bearer malva_..."

Returns the full job record, or 404 when the job does not exist or does not belong to you.

Sync a job

curl -X POST https://malva.mdc-berlin.de/api/jobs/<job_id>/sync \
  -H "Authorization: Bearer malva_..."

Pulls the latest status from the search service and updates the local job record. Use this when a job status looks stale.

Delete a job

curl -X DELETE https://malva.mdc-berlin.de/api/jobs/<job_id> \
  -H "Authorization: Bearer malva_..."
{"ok": true}

Deleting a job removes it from your history. Shared links, saved groups and downloaded exports are not affected. See Jobs and history for what a job stores and for how long.

Share a job

curl -X POST https://malva.mdc-berlin.de/api/jobs/<job_id>/share \
  -H "Authorization: Bearer malva_..."
{"token": "share-token", "url": "https://malva.mdc-berlin.de/shared/<token>", "ok": true}

Anyone with the URL can open the shared result. Revoke it with POST /api/jobs/<job_id>/unshare. See Sharing results.