Job Status

Check the processing status and progress of a job.

GET/api/v1/jobs/{jobId}/status

Monitor the progress of your image enhancement job.

Path Parameters

NameTypeRequiredDescription
jobIdstringRequiredThe unique job identifier returned when creating an order

Request Example

curl https://www.quickhome.ai/api/v1/jobs/job_abc123xyz/status \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

Response

200 OK
{
  "jobId": "job_abc123xyz",
  "status": "processing",
  "progress": {
    "total": 4,
    "completed": 2,
    "percentage": 50
  },
  "createdAt": "2025-11-18T10:30:00Z"
}

Response Fields

NameTypeRequiredDescription
jobIdstringRequiredThe job identifier
statusstringRequiredCurrent status: pending, processing, completed, failed
progressobjectRequiredProcessing progress information
createdAtstringRequiredISO 8601 timestamp when the job was created
errorstringOptionalError message if status is failed

Status Values

pending

Job is queued and waiting to be processed

processing

Job is currently being processed

completed

Processing complete, results ready for download

failed

Processing failed, check error field

Polling Best Practices

  • Recommended polling interval: Check status every 30 seconds
  • Typical processing time: Most jobs complete in about an hour
  • Job expiration: Completed jobs remain available for 7 days
  • Maximum job duration: Jobs that exceed 2 hours will automatically fail

Example Polling Loop

async function waitForCompletion(jobId) {
  const maxAttempts = 240; // 2 hours with 30-second intervals
  let attempts = 0;

  while (attempts < maxAttempts) {
    const response = await fetch(
      `https://www.quickhome.ai/api/v1/jobs/${jobId}/status`,
      {
        headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
      }
    );

    const status = await response.json();

    if (status.status === 'completed') {
      console.log('Job completed!');
      return status;
    } else if (status.status === 'failed') {
      throw new Error('Job failed: ' + status.error);
    }

    // Wait 30 seconds before next check
    await new Promise(resolve => setTimeout(resolve, 30000));
    attempts++;
  }

  throw new Error('Job timeout');
}
Quick Home AI | Professional Property Photos