> ## Documentation Index
> Fetch the complete documentation index at: https://api.docs.dealmachine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Exports

List past exports for your organization with optional pagination and status filtering. This endpoint is useful for checking the status of recent exports or re-downloading files.

## Query Parameters

<ParamField query="limit" type="integer" default="25">
  Number of exports to return (1–100).
</ParamField>

<ParamField query="offset" type="integer" default="0">
  Number of exports to skip for pagination.
</ParamField>

<ParamField query="status" type="string">
  Filter by export status. If omitted, all statuses are returned.

  Options: `pending`, `processing`, `completed`, `failed`
</ParamField>

***

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.v2.dealmachine.com/v1/exports?limit=10&status=completed" \
    -H "Authorization: Bearer dm_sk_live_xxx"
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.v2.dealmachine.com/v1/exports",
      headers={"Authorization": "Bearer dm_sk_live_xxx"},
      params={"limit": 10, "status": "completed"}
  )
  exports = response.json()

  for export in exports["data"]:
      print(f"{export['export_id']}: {export['status']} ({export['record_count']} records)")
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.v2.dealmachine.com/v1/exports?limit=10&status=completed", {
    headers: {
      "Authorization": "Bearer dm_sk_live_xxx",
    },
  });

  const exports = await response.json();
  for (const exp of exports.data) {
    console.log(`${exp.export_id}: ${exp.status} (${exp.record_count} records)`);
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Success theme={null}
  {
    "data": [
      {
        "export_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "status": "completed",
        "name": "properties_export",
        "progress": 100,
        "progress_stage": "Complete",
        "record_count": 15432,
        "file_size": 2457600,
        "download_urls": [
          {
            "filename": "properties_export_2026-02-17.csv.gz",
            "url": "https://storage.googleapis.com/...",
            "size": 2457600
          }
        ],
        "created_at": "2026-02-17T15:30:00.000Z",
        "updated_at": "2026-02-17T15:30:34.000Z",
        "expires_at": "2026-02-24T15:30:00.000Z"
      }
    ],
    "pagination": {
      "limit": 10,
      "offset": 0,
      "total": 1,
      "has_more": false
    }
  }
  ```
</ResponseExample>

## Response

### `data` (array)

Each export object contains:

| Field            | Type    | Description                                                      |
| ---------------- | ------- | ---------------------------------------------------------------- |
| `export_id`      | string  | Unique identifier for the export                                 |
| `status`         | string  | Export status: `pending`, `processing`, `completed`, or `failed` |
| `name`           | string  | Export name (e.g., `properties_export`, `people_export`)         |
| `progress`       | integer | Progress percentage (0–100)                                      |
| `progress_stage` | string  | Human-readable progress description                              |
| `record_count`   | integer | Number of records exported (null if not yet complete)            |
| `file_size`      | integer | Total file size in bytes (null if not yet complete)              |
| `download_urls`  | array   | Signed download URLs (null if not yet complete or expired)       |
| `created_at`     | string  | ISO 8601 timestamp when the export was created                   |
| `updated_at`     | string  | ISO 8601 timestamp when the export was last updated              |
| `expires_at`     | string  | ISO 8601 timestamp when the export and download URLs expire      |

### `pagination`

| Field      | Type    | Description                                     |
| ---------- | ------- | ----------------------------------------------- |
| `limit`    | integer | Number of results per page                      |
| `offset`   | integer | Number of results skipped                       |
| `total`    | integer | Total number of exports matching the query      |
| `has_more` | boolean | Whether there are more results beyond this page |

***

## Tips

* Use `status=completed` to find exports with available download URLs.
* Download URLs are time-limited. If an export's URLs have expired, you'll need to run the export again.
* See the [Exporting Guide](/concepts/exporting) for best practices.
