API Reference
Complete endpoint documentation for the DomeTech Enterprise API.
Base URL
https://staging-api.dometech.com.au/v1All requests require an X-API-Key header. See Authentication. Switch environments using the toggle in the top nav.
Jobs
GET
/v1/jobs200List all jobs for your organization with optional filters and pagination.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer (1-100) | No | Results per page. Default: 50 |
offset | integer (>=0) | No | Pagination offset. Default: 0 |
status | string | No | Filter by status: queued, running, awaiting_input, completed, failed |
job_type | string | No | Filter by job type |
Response
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"job_type": "drone_footage",
"status": "completed",
"input": { "address": "123 Collins St, Melbourne" },
"output": { "video_url": "https://..." },
"created_at": "2026-02-09T10:00:00.000Z",
"updated_at": "2026-02-09T10:02:30.000Z",
"completed_at": "2026-02-09T10:02:30.000Z"
}
],
"pagination": {
"total": 42,
"limit": 50,
"offset": 0,
"has_more": false
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-09T12:00:00.000Z"
}
}GET
/v1/jobs/{jobId}200Retrieve a specific job by ID. Use this to poll for async job completion.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
jobId | string (UUID) | Yes | The job ID returned when the job was created |
Response
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"job_type": "drone_footage",
"status": "completed",
"input": { "address": "123 Collins St, Melbourne" },
"output": {
"video_url": "https://...",
"thumbnail_url": "https://...",
"duration": 12.5
},
"created_at": "2026-02-09T10:00:00.000Z",
"updated_at": "2026-02-09T10:02:30.000Z",
"completed_at": "2026-02-09T10:02:30.000Z"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-09T12:00:00.000Z"
}
}Content Generation
POST
/v1/drone-footage/generate202Generate aerial drone footage for a property address. Returns a job ID for async polling.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
address | string | Yes | Full property address |
options.direction | string | No | Camera direction: original, north, south, east, west, topdown_zoomout, topdown_zoomin |
Request Example
{
"address": "123 Collins Street, Melbourne VIC 3000",
"options": {
"direction": "north"
}
}Response
{
"data": {
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-09T10:00:00.000Z"
}
}Error Responses
All endpoints return errors in a consistent format. See Error Codes for the full list.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "address is required"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-09T10:00:00.000Z"
}
}| Status | Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid request body or parameters |
| 400 | INVALID_URL | Provided URL is not accessible |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | Insufficient permissions |
| 403 | FEATURE_DISABLED | Endpoint not enabled for your org |
| 403 | INSUFFICIENT_QUOTA | Usage quota exceeded |
| 404 | JOB_NOT_FOUND | Job ID does not exist |
| 409 | JOB_IN_PROGRESS | A job for this resource is already running |
| 429 | RATE_LIMITED | Too many requests |
| 500 | INTERNAL_ERROR | Unexpected server error |