API Reference

Complete endpoint documentation for the DomeTech Enterprise API.

Base URL

https://staging-api.dometech.com.au/v1

All requests require an X-API-Key header. See Authentication. Switch environments using the toggle in the top nav.

Jobs

GET/v1/jobs200

List all jobs for your organization with optional filters and pagination.

Query Parameters

ParameterTypeRequiredDescription
limitinteger (1-100)NoResults per page. Default: 50
offsetinteger (>=0)NoPagination offset. Default: 0
statusstringNoFilter by status: queued, running, awaiting_input, completed, failed
job_typestringNoFilter 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}200

Retrieve a specific job by ID. Use this to poll for async job completion.

Path Parameters

ParameterTypeRequiredDescription
jobIdstring (UUID)YesThe 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/generate202

Generate aerial drone footage for a property address. Returns a job ID for async polling.

Request Body

ParameterTypeRequiredDescription
addressstringYesFull property address
options.directionstringNoCamera 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"
  }
}
StatusCodeDescription
400VALIDATION_ERRORInvalid request body or parameters
400INVALID_URLProvided URL is not accessible
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENInsufficient permissions
403FEATURE_DISABLEDEndpoint not enabled for your org
403INSUFFICIENT_QUOTAUsage quota exceeded
404JOB_NOT_FOUNDJob ID does not exist
409JOB_IN_PROGRESSA job for this resource is already running
429RATE_LIMITEDToo many requests
500INTERNAL_ERRORUnexpected server error