---
title: "List the caller's recent jobs"
method: GET
path: "/v1/tasks/jobs"
tags: ["Tasks"]
---

# List the caller's recent jobs

`GET /v1/tasks/jobs`

## Request

- Base URL: `https://api.genomicintelligence.ai`
- URL: `https://api.genomicintelligence.ai/v1/tasks/jobs`
- Auth: HTTP bearer

Return a short list of the caller's recently submitted jobs.

## Query parameters

- `limit` integer

## Response `200`

Recent jobs submitted with this key, newest first. Owner-scoped — never returns another key's jobs.

- JobListResponse: Success envelope for ``GET /v1/tasks/jobs``. Owner-scoped: only jobs submitted with the caller's key are listed.
  - `jobs` JobSummary[], required
    - `job_id` string, required: Server-generated UUIDv4.
    - `task` string, nullable: Task the job ran.
    - `mode` string, nullable: "sync" or "async".
    - `status` 'accepted' | 'running' | 'complete' | 'error', required: Job lifecycle state.
    - `created_at` number, required: Unix epoch seconds at submission.
    - `completed_at` number, nullable: Unix epoch seconds at completion; null while running.
  - `count` integer, required: Number of entries in ``jobs``.

## Other responses

- `400`: Bad request — e.g. `Prefer: respond-async` combined with a text format.
- `401`: Missing or invalid bearer key (`unauthorized`).
- `403`: Key disabled or insufficient tier (`forbidden`).
- `404`: Unknown task, unknown job, or a job owned by another key (`not_found`).
- `409`: Conflict (`conflict`).
- `410`: Async job result expired out of the job store (`job_expired`).
- `413`: Either the 16 MiB request-body hard cap was exceeded (`payload_too_large`, enforced before parsing), or the body is over the endpoint's synchronous-delivery cap (`sync_too_large`; `error.details` carries `{sequence_length, threshold}` — retry the same request with `Prefer: respond-async`).
- `415`: The requested output format is not one this task can render (`unsupported_format`). The message lists the supported formats; the server never silently falls back to JSON.
- `422`: Validation failed (`validation_failed`) — sequence length outside the task's bounds, a non-ACGTN character, an unknown key under `options` (every options object is closed), or a sequence below the *selected task's published `minLength`/`maxLength` bounds.
- `429`: Rate or concurrency cap reached (`too_many_requests`). `Retry-After` and the `RateLimit-*` headers say when to retry.
- `500`: Server error (`internal_error`).
- `503`: Model still loading (`model_loading`), GPU memory exhausted (`insufficient_memory`), or service unavailable. `insufficient_memory` means the card OOM-ed on this request and its cache has been released — it is transient GPU pressure, not a server bug, so `Retry-After` is honest and a bounded retry is the right response.

---

[API](https://skmtc.dev/genomicintelligence/apis/genomic-intelligence-api.md) · [All operations](https://skmtc.dev/genomicintelligence/apis/genomic-intelligence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/genomicintelligence/apis/genomic-intelligence-api/revisions/72436b86d4fe?raw)
