# listJobs

> Part of the MAP Audio Music API docs. Index of every page: https://map.audio/developers/music-api/llms.txt. OpenAPI document: https://map.audio/developers/music-api/openapi.json.

`GET https://api.map.audio/v1/jobs`

List jobs

The account's jobs, newest first, optionally filtered by `status` and `operation`, with fresh download links on the outputs. Jobs from test and live keys are listed together. Job records are kept 90 days. Free.

Auth: `Authorization: Bearer` with an API key or a map.audio access token. MCP tool: `list_jobs`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `status` | query | "queued" \| "running" \| "succeeded" \| "failed" \| "cancelled" \| "expired" | no | Only jobs in this status. |
| `operation` | query | string | no | Only jobs of this operation: `renders.create`, `uploads.complete`, or a command's operationId such as `presetRender`. |
| `limit` | query | integer | no | Jobs per page. From 1 to 100. Default `25`. |
| `cursor` | query | string | no | The `nextCursor` of the previous page. |

## Example

```sh
curl -sS "https://api.map.audio/v1/jobs?operation=renders.create" \
  -H "Authorization: Bearer $MAP_API_KEY" \
  -H "Map-Version: 2026-11-01"
```

### 200: The latest job

```json
{
  "object": "list",
  "data": [
    {
      "object": "job",
      "id": "job_01M6BPRE186QHP9QPYGDX5NNFP",
      "operation": "renders.create",
      "status": "succeeded",
      "livemode": false,
      "sequence": 3,
      "progress": 1,
      "queuePosition": null,
      "createdAt": "2026-11-01T14:03:31.512Z",
      "startedAt": "2026-11-01T14:03:33.104Z",
      "finishedAt": "2026-11-01T14:03:41.877Z",
      "estimate": {
        "audioSeconds": 16,
        "renderMinutes": 0.267
      },
      "result": {
        "outputs": [
          {
            "role": "master",
            "name": null,
            "cell": null,
            "file": "file_01M6BPRK0M34NBP2XKJ1RMX1TQ",
            "sha256": "5a3485b7a3221be5f7ead6ab953cbc198988a7246158215b32bb937acbd3852b",
            "bytes": 4608044,
            "format": "wav",
            "sampleRate": 48000,
            "durationSeconds": 16,
            "url": "https://api.map.audio/v1/download/file_01M6BPRK0M34NBP2XKJ1RMX1TQ?expires=1793545422&signature=yaoMrgCHcK9T8MaVnCVtXZc4Ym0FWWM8P-0feZDMObk",
            "expiresAt": "2026-11-01T15:03:42.000Z"
          }
        ],
        "seed": 42,
        "command": {
          "ok": true,
          "wavPath": "file_01M6BPRK0M34NBP2XKJ1RMX1TQ",
          "sampleRate": 48000,
          "channels": 2,
          "durationSeconds": 16,
          "seed": 42,
          "stems": [],
          "stemTap": "post_cell_pre_master",
          "latencySamples": 0,
          "missingSamples": []
        },
        "spec": {
          "source": {
            "preset": "pam:factory/313-disco"
          },
          "plan": null,
          "bars": 8,
          "seconds": null,
          "tail": 0,
          "seed": 42,
          "stems": false,
          "sampleRate": 48000,
          "format": {
            "container": "wav"
          },
          "quality": "draft",
          "tempo": 120
        },
        "provenance": {
          "object": "provenance",
          "id": "prov_01M6BPRVA8ZC7F7J737SQ0EPN2",
          "jobId": "job_01M6BPRE186QHP9QPYGDX5NNFP",
          "createdAt": "2026-11-01T14:03:41.877Z",
          "engine": {
            "product": "pam",
            "version": null,
            "runtime": "native-linux-x86_64",
            "image": "registry.cloudflare.com/c7c2e61448617e81ced650f444fb6787/pam-render@sha256:5c5ffe3fabc103e277280fbd65a08988d31361f00fe7857e36f603d67bcec42d"
          },
          "seed": 42,
          "presets": [
            {
              "ref": "pam:factory/313-disco",
              "sha256": "3afbf5dea1003b2d17385955017785a57d74c65f77f97b58cf5d7cec9794ca1c"
            }
          ],
          "packs": [],
          "userFiles": [],
          "inputs": [],
          "outputs": [
            {
              "file": "file_01M6BPRK0M34NBP2XKJ1RMX1TQ",
              "sha256": "5a3485b7a3221be5f7ead6ab953cbc198988a7246158215b32bb937acbd3852b"
            }
          ],
          "planner": null,
          "contracts": {
            "api": "2026-11-01",
            "pam.cli": 1
          },
          "aiModels": [],
          "audioByModel": false,
          "license": {
            "id": "lic_api_prototype_test",
            "commercialUse": false,
            "attribution": true
          },
          "kid": "6c2f0a9d4b7e1358",
          "signature": "ed25519:jsfkW3eF1r4kChqccp6AKLTvjTK5Re8acrEusqigz7MDUu6uZhsJXVnuQEl6EsErDgVYNXOkos9d0mMyt2CVCg"
        }
      },
      "error": null,
      "usage": {
        "renderMinutes": 0.267,
        "audioSeconds": 16,
        "computeMs": 6273
      },
      "metadata": {},
      "urls": {
        "self": "https://api.map.audio/v1/jobs/job_01M6BPRE186QHP9QPYGDX5NNFP",
        "events": "https://api.map.audio/v1/jobs/job_01M6BPRE186QHP9QPYGDX5NNFP/events",
        "cancel": "https://api.map.audio/v1/jobs/job_01M6BPRE186QHP9QPYGDX5NNFP/cancel"
      }
    }
  ],
  "nextCursor": null
}
```

### 400: Invalid request

```json
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_request",
    "message": "status must be one of queued, running, succeeded, failed, cancelled or expired; got \"done\".",
    "param": "status",
    "retryable": false,
    "jobId": null,
    "docUrl": "https://map.audio/developers/music-api/errors#invalid_request",
    "requestId": "9a3f7c2e5b1d8f40-LHR"
  }
}
```

## Responses

- `200`: Jobs.
- `400`: Invalid request
- `default`: Any other error: `error.code` names it, `error.param` the field at fault, and `error.docUrl` its entry in the error catalogue.

## Errors

- [`invalid_request`](https://map.audio/developers/music-api/errors#invalid_request)
