curl "https://api.v2.dealmachine.com/v1/exports?limit=10&status=completed" \
-H "Authorization: Bearer dm_sk_live_xxx"
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)")
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)`);
}
{
"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
}
}
Exports
List Exports
GET
/
v1
/
exports
curl "https://api.v2.dealmachine.com/v1/exports?limit=10&status=completed" \
-H "Authorization: Bearer dm_sk_live_xxx"
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)")
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)`);
}
{
"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
}
}
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.
Each export object contains:
Query Parameters
integer
default:"25"
Number of exports to return (1–100).
integer
default:"0"
Number of exports to skip for pagination.
string
Filter by export status. If omitted, all statuses are returned.Options:
pending, processing, completed, failedcurl "https://api.v2.dealmachine.com/v1/exports?limit=10&status=completed" \
-H "Authorization: Bearer dm_sk_live_xxx"
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)")
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)`);
}
{
"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
}
}
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=completedto 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 for best practices.
⌘I